Ajax - PHP Scripte nacheinander aufrufen

Hallo,

wenn Du doch noch reinschauen solltest:

mit "setTimeout('tim()',1000);" könnstest Du nach 1s eine Javascriptfunktion aufrufen:

function tim()
{ //... irgendwas machen/checken
setTimeout('tim()',1000);
}

so im Sekundentakt Dein php aufrufen.

---------------------------------------------------------------------------------------------------------------------------
Alternativ kannst Du ja auch mit php und meta refresh eine "warte" -Seite bauen
->aufruf Textfunktion
->diese macht ein Teil und gibt warte Seite aus
->Warteseite ruft gleich wieder Textfunktion auf
->diese macht ein Teil und gibt warte Seite aus
->Warteseite ruft gleich wieder Textfunktion auf
...
und zum Schluss gibst Du das Ergebnis aus.
 
Sorry, da ist mir heute nachmittag etwas der Kragen geplatzt.
Ich bin zwar nicht oft auf tutorials.de, aber wenn ich mal da bin, dann versuche ich eigentlich immer den anderen zu helfen (habe selber erst ein paar mal selber um Hilfe gebeten) und dann bittet man selber mal um Hilfe und bekommt dann als Antwort von einem Mod "Stell es in die Jobbörse.."

Sorry Sven, hast ja eigentlich recht, aber ich will es nicht fremdgecodet haben, sondern einen Lösungsansatz oder ein Beispiel. Wir sind ja hier auf "Tutorials.de" und nicht "Lass-es-dir-von-jemanden-komplett-besorgen.de".

@Pestilence: Danke für den Link, aber ich bin mir nicht sicher, ob ich dafür gleich ein komplettes Framework brauche. Ich schaue es mir auf jeden Fall mal an.

@loetmann: Prinzip verstanden, probiere ich mal. Danke
 
Ich darf mal rekapitulieren....
Einerseits sehe ich es als ziemlich sinnlos an, eine "neue" Sprache ansatzweise/komplett zu lernen (Ich kann ja erst 9 Sprachen) , wenn ich es nur ein einziges mal brauche.

Leider gibts zwar genug "Ich lerne Ajax in 3, 5, 10 oder 20 Minuten"-Seiten aber eine Lösung habe ich da nicht gefunden, und ich kann mir nicht vorstellen, dass das in Ajax recht komplizert ist.

Was hast du denn bisher...zeig mal etwas Code

......Nichts. Hab ich doch geschrieben.


Du willst keine Hilfe zur Selbsthilfe, du willst dass dir jemand deinen Job macht, und wenn ich dir sage, wo du das bekommst, was du willst, spielst du beleidigte Leberwurst:rolleyes:
 
Wenn ich gemein wäre würde ich nun behaupten nimm Perl ;)

Wie Sven schon sagte , Ajax ist nicht wirklich kompliziert , eigentlich ist es nur ein Bruchteil vom ganzen JavaScript und da reichen einen die Ajax in 10 min Seiten wirklich aus.Notfallls kopierst dir den ganzen Quellcode von den Tutorial Seiten einfach raus.

Was du brauchst ist halt XMLHTTPRequest oder ActiveXObject(XMLHTTP) je nach Browser.

Was ich machen würde wäre immer die Zeiger über POST mitsenden , also genau genommen 2 Zahlen. Die erste Zahl wäre der Start Zeiger und der 2. die Länge die eingelesen werden soll.Somit liest immer Stück für Stück ein.

Ein Framework zu nutzen hat seine Vor und Nachteile , ein Nachteil wäre halt das man mit Kanonen auf Spatzen schiesst der Vorteil liegt klar auf der Hand es geht schön einfach.

Ich selber nutze meine eigenen Funktionen dafür , hier der Abschnitt aus meinen Load Object.

Code:
Load = {
    ajaxContent:function (configFile,cb) { 
        var config = configFile;
        var callback = cb;
        
        function addPostParams(paramsObj) {
            var postParams = null;
            
            for(key in paramsObj) {
                if(!postParams) 
                    postParams = key+"="+paramsObj[key];
                else 
                    postParams += "&"+key+"="+paramsObj[key];
            }                
            return (postParams)?postParams:'';
        }
               
        function addGetParams (paramsObj) {
            var getParams = null;
        
            for(key in paramsObj) {
                if(!getParams) 
                    getParams = "?"+key+"="+paramsObj[key];
                else 
                    getParams += "&"+key+"="+paramsObj[key];
            }
            
            return (getParams)?getParams:null;
        }
        
        function getAjaxContent() {        
            if(window.XMLHttpRequest)     
                var http_request = new XMLHttpRequest();
            else 
                var http_request = new ActiveXObject("Microsoft.XMLHTTP");
            
            if(config.method == 'POST') {
                http_request.open(config.method,config.path,true);
                http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                http_request.send(addPostParams(config.params));
            } else {
                var getParams = addGetParams(config.params);
                
                /*
                                            * IE Fix:
                                             * Der Internet Explorer cacht die Datei und läd sie neu so das die HTTP XML Request nie 
                                             * ausgeführt wird. Somit noch einen Timestamp mit anhängen so das die Seite jedesmal
                                             * neu geladenwird
                                             */
                if(navigator.appName == 'Microsoft Internet Explorer') {  
                    var t = new Date();                        
                    if(getParams) {
                        getParams += '&xy='+t.getTime();
                    } else {
                        getParams += '?xy'='+t.getTime();
                    }
                }
                
                http_request.open('GET',config.path+''+getParams,true);
                http_request.send(null);
            }
            
            http_request.onreadystatechange = function () {
                try {
                    if(http_request.readyState == 4) {                
                        if(http_request.status == 200) {
                            var requestVal = http_request.responseText;             

                            if(callback) {
                                callback.call(callback,requestVal);
                            }
                        }
                    }
                } catch (e) {
                    // kommt hier rein erstmal nun wenn wärend des preloadens refresh gedrückt wurde
                    // warum hab ich auch keine Ahnung
                }
            }
        }
        
        this.initLoad = function () {
            getAjaxContent();
        }
    }
}

Aufruf zum Beispiel
Code:
function fertig(returnvalue) {
    alert(returnvalue);
}

window.onload = function () {
    var l = new Load.ajaxContent({path:'test.php',
                          method:'POST',
                          params:{
                             name1:'value1',
                             name2:'value2'}
                         },fertig);
         l.initLoad();
}
 
Zurück