![]() |
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:48 |