Ajax - 10 requesturi, problema cu ordinea

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

Qwest
PHPRomania Supporter
Mesaje: 26
Membru din: Sâm Dec 02, 2006 12:31 pm

Ajax - 10 requesturi, problema cu ordinea

Mesajde Qwest » Joi Feb 24, 2011 7:46 pm

Am o forma cu niste date, fac 10 requesturi catre un fisier php, fisierul php face la rindul sau un request SOAP

in fisierul php am cam asa ceva:

if($company == "company1")
{
soap request ..
}
elseif($company == "company2")
{
soap request
}


si tot asa am 10 if-uri, requesturile soap au timp diferit de raspuns de la 1 secunda pina la 30 de secunde, acum intr-o functi javascript (jquery) vreau sa fac 10 requesturi ca sa pot primi rezultatele soap la toate aceste 10 companii,

la moment am facut 3 ajax requesturi, si am observat ca ba este o ordine de executare a requsturilor ba nu este, predomina totushi ordinea de executare, eu avind timp de raspuns din parte companiilor de la 1 pina la 30 de secunde doresc ca ajax requsturile sa se inceapa toate odata si sa imi returneze in ordinea in care primeste un rezultat de la requestul soap,
la moment am dat sleep la un request soap de 15 secunde, si macar ca celelate 2 requesturi nu au asa ceva, astept 15 secunde pina merge primul request ajax apoi se executa ajax requestul nr2 si apoi ajax requestul nr 3, sunt cazuri cind ordinea lor e diferita, adica poate sa se inceapa requestul 3 apoi 2 apoi 1 -> dar asta din 5 ori poate 1 data nu stiu de ce asa ... cine s-a lovit de asa situatie si ma poate lamuri / ajuta cu un sfat ... multumesc anticipat !!!

if($('#sasiu').val() != "")
{
get_generali();
get_omniasig();
get_uniqa();

}

iata 3 requesturi ajax, mi le executa pe rind get_generali apoi get_omniasig apoi get_uniqa -> o data la 5 ori sau la 10 ordinea lor poate sa se schimbe haotic, am nevoie ca sa se initializeze toate 10 odata , si sa returneze cind a primit un rezultat din parte scriptului php, adica daca un request soap intirzie sa zicem in acest moment get_generali intirzie atunci get_omniasig si get_uniqa stau pe loc si ele 30 de secunde apoi se executa :(



Avatar utilizator
kleampa
Senior Member
Mesaje: 2774
Membru din: Dum Iul 10, 2005 2:12 pm
Localitate: Bucuresti
Contact:

Mesajde kleampa » Vin Feb 25, 2011 10:38 am

eu as face o functie gen get_general si as pune toate astea servicii (omniasig,unica...) ca si parametru in functie respectiva

asa ai un singur request si va rula in ordinea din php

Qwest
PHPRomania Supporter
Mesaje: 26
Membru din: Sâm Dec 02, 2006 12:31 pm

Mesajde Qwest » Vin Feb 25, 2011 10:46 am

pina la acest moment asa faceam, un request care imi returna un json cu toate rezultatele la toate 10 companii, chestia era ca se astepta prea mult, adica 2 servere de soap de exemplu nu funcitonau si trebuia utilizatorul sa astepte vreo 50 de secunde, poate isi pierde interesul sa mai astepte ....

de aceea am trecut la modul care l-am descris ma sus, sa se faca 10 requesturi diferite, pentru ca in asa mod sa zicem 4 companii returneaza deja rezultatul in pagina timp de 0.5 secunde, a 5-a companie intirzie 10 secunde -> nu da nici un rezultat, si merge mai departe inca 5 companii cu timp de la 0.5 pina la 1.5 secunde de afisare... si le afiseaza pe toate 10, asa cum am descris e mai bine decit doar un request, dar totushi e rau ca pina nu se executa un request nu incepe altul, si in caz ca un servis soap nu functioneaza si merge o stagnarea din partea php-ului de 10 secunde, utilizatorul le asteapta, sa se inceapa toate odata,, si sa afiseze rezultatele si care stagneaza 10 secunde sa o arate peste 10 ar fi mai bine ....

Avatar utilizator
kleampa
Senior Member
Mesaje: 2774
Membru din: Dum Iul 10, 2005 2:12 pm
Localitate: Bucuresti
Contact:

Mesajde kleampa » Vin Feb 25, 2011 5:28 pm

ai dreptate
si totusi modul cum ai explicat prima data trebuia sa mearga
ma gandesc ca ar fi ceva de la php sa nu permita mai multe requesturi soap in acelasi timp
testeaza tot cu 3 intr-o anumita ordine, dar in loc de request real da un sleep si un echo si vezi in ce ordine le ia

Qwest
PHPRomania Supporter
Mesaje: 26
Membru din: Sâm Dec 02, 2006 12:31 pm

Mesajde Qwest » Vin Feb 25, 2011 7:35 pm

nu ca 10 requesturi odata in php se misca greu treaba de tot ...


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 19 vizitatori