Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] Wielokrotne połączenie z serwerem
Qwak
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 29.04.2009

Ostrzeżenie: (0%)
-----


Hej!

Jakiś czas temu napisałem skrypt który w zależności od ilości danych podanych przez użytkownika czasami wykonywał się ponad limit czasu skryptu (nie, to nie było jego zadanie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ). Jako że nawet gdybym sobie zwiększył limit wykonywania skryptu to i tak denerwujące by było czekanie aż skrypt się wygeneruje (problemu nie da się obejśc - curl). Dlatego postanowiłem zastosować JS do wstępnej obróbki danych i potem za pomocą ajax porcjami wysyłać dane do skryptu PHP. Wykorzystuje to obiekt xmlHttpRequest. Problem w tym że nie wiem za bardzo jak się zabrać do wielokrotnego połączenia ze skryptem :/ Mam taki kod:

Kod
for (i=0;i < iMax;i++) {
        var rXmlHttp = initXmlObject();
        rXmlHttp.onreadystatechange = function(){onchange();}
        rXmlHttp.open('POST','includes/server.php',true);
        rXmlHttp.setRequestHeader('content-type','application/x-www-form-urlencoded;charset=utf-8');
        rXmlHttp.send('sStuff='+sSendContent);
        delete(rXmlHttp);
    }


function initXmlObject () {
        var rXmlHttp;
        try {
            rXmlHttp = new XMLHttpRequest();
        }
        catch (e) {
            var aXmlHttp = new Array('MSXML2.XMLHTTP.5.0',
            'MSXML2.XMLHTTP.4.0',
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP',
            'Microsoft.XMLHTTP');
            var bSuccess = false;
            for (var i=0;i<aXmlHttp.lenght && !bSuccess;i++) {
                try {
                    rXmlHttp = new ActiveXObject(aXmlHttp[i]);
                    bSuccess = true;
                }
                catch (e) {}
            }
            if (!bSuccess) {
               throw new error ("blad!");
            }
        }
        return rXmlHttp;
}


Funkcja onchange jest dość spora i odwołuje się do jeszcze drugiej. W tym leży chyba problem bo z moich "badań" wynika że zmienna jest wywalana przed tym jak serwer zwróci wyniki i wszystko się rozwala. Próbowałem dodać jakąś pętle która by czekała aż funkcja onchange skończy działanie ale kończyło się to epic failem ;-) przeglądarka się zapętlała.

Aha i jeszcze mam takie pytanie: czy warto się pchać w rozwiązania zastępcze takie jak iframe i cookies? Zamierzam jeszcze zrobić wersje strony która będze pozbawiona java scriptu i myśle że to wystarczy. Co o tym myślcie?

Proszę o pomoc i pozdrawiam 
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:48