Newsgroup: it.comp.lang.javascript
Titolo: Jquery - richieste ajax concorrenti

Oggi dovevo realizzare un coso che mediante una chiamata ajax lanciasse 
una azione in php piuttosto lunga. Diciamo per semplicità una pagina php 
che scorre un db e smanetta i record uno per uno. Questa operazione può 
metterci molto, tipo 1 ora.
Quindi ho fatto un poller che viene lanciato prima dell'altra chiamata 
ajax (l'ho messo nel beforeSend della chiamata ajax di jquery, ma anche 
spostandolo non cambia nulla).
Sta di fatto che non funziona...viene lanciato, ma inizia a funzionare 
solo alla fine della prima chiamata ajax. Al che ho iniziato a fare un 
po' di esperimenti e ho notato che mentre la chiamata ajax (una 
qualsiasi con jquery) è lanciata e attende risposta, l'intero dominio 
non risponde ad altre richieste del browser. Quindi neppure da un'altra 
tab dello stesso browser. Ovviamente senza async: true e robe del genere.
Ho quindi cambiato browser (questo era l'ultima firefox 3.6), e ho 
provato chrome, stesso comportamento. Ho quindi provato a chiamere le 
pagine con un dominio alias e funziona; quindi per chiudere la cosa ho 
fatto un alias al dominio, cambiato il poller in un getJson crossdomain, 
tolto autenticazione sulla pagine che espone il json (dato la sessione 
non la tiene tra 2 domini diversi) e funziona.
Ma la domanda che pongo dopo tutto sto cappello è:
E' normale che durante una chiamata $.Ajax di jquery l'intero dominio 
interessato non sia disponibile per il browser fino al completamento di 
quella chiamata?
Se si qual'è il motivo?
Grazie a chi deluciderà un po'...
PS
jquery era la 1.5.1 a ho provato anche 1.5 (che è marcia persa di suo) e 
la 1.4.4 e la cosa è uguale.
-- 
Z.

 tab dello stesso browser. Ovviamente senza async: true e robe del genere.
Risposta completamente OT visto che non riguarda javascript: potrebbe 
essere un problema di sessione lato server. Io ho avuto un problema 
analogo e la causa era proprio la sessione aperta ad inizio script e 
"chiusa" alla fine (con php e symfony). La soluzione e' stata chiudere 
subito la sessione (che per altro non mi serviva nello script) e il 
tutto ha iniziato magicamente a funzionare come doveva.

Z. wrote:

Ci sono sicuramente delle limitazioni al numero di richieste che possono essere
fatte su uno stesso dominio:
http://stackoverflow.com/questions/561046/how-many-concurrent-ajax-xmlhttprequest-requests-are-allowed-in-popular-browser
Nel tuo caso sarebbero 2 quindi teoricamente sotto i limiti (6 per firefox 3.x).
Controlla se per caso non lanci più di una chiamata o se qualcuna rimane
appesa. Non credo sia un problema specifico di jquery ma puoi sempre provare
un'altra libreria.
-- 
                                       Riccardo Lemmi


sicuramente entrambe le chiamate vanno su php con sessione, e una delle 
2 non mi serve (non solo, l'ho anche levata ora dato è un altro 
dominio), domani provo se senza la sessione di mezzo rompe lo stesso.
Certamente come comportamento la storia della sessione si adatta bene...
Per intanto grazie!
-- 
Z.

 un'altra libreria.
Se fosse un prb di jquery mi tengo il mio workaround piuttosto di rifare 
tutto, cmq la storia delle sessione dell'altro post mi suona piuttosto 
bene, domani investigo su quello
-- 
Z.

Il 10/03/2011 19:57, Z. ha scritto:
Ho fatto una microprova al volo (ero curiosissimo:P) ed in effetti su 
una pagina dello stesso dominio ma esterna alla webapp (quindi senza 
sessioni) funziona liscia...
Domani provo in dettaglio sul mio prb, ma mi sembra proprio tu ci abbia 
preso alla grandissima :P
Certo che se è così cmq è un po' una scocciatura; in questo caso posso 
fare a meno della sessione, ma è un bel limite in generale...
-- 
Z.


All'epoca mi documentai "abbastanza" e la limitazione era dovuta al 
fatto che per lavorare sulle sessioni si locka qualcosa (file, tupla del 
db ecc. a seconda delle configurazioni) e quindi l'ulteriore richiesta 
si trova in attesa. La cosa aveva abbastanza senso, percio' io mi sono 
comportato cosi (con symfony ripeto, magari c'era un modo + elegante per 
svoltarla ma per quel che mi pagavano... :> ) :
- faccio quello che devo fare con la sessione all'inizio dello script e 
poi la chiudo
- faccio fare quello che deve fare allo script
- alla fine faccio un redirect http per poter riaprire la sessione e 
concludere le operazioni su essa


Giusto x conferma, ho provato detro l'app ed è esattamente quello il prb.
X questo giro è risolta, se al prox mi serve che entrambe le chiamate 
abbiano sessione dovrò usare il tuo approccio...
Davvero grazie :)
-- 
Z.

Il problema è sostanzialemente molto impostato e axja non c'entra una mazza.
Devi al click da scatenata da pagina far partire un thread in parallelo e 
tornare un esito si "azione avviata / non avviata".
Dopo di che fare un'altra pagina che fai il poll sulla condizione di fine 
attività (ad esempio ), produzione esito.
Questo per qualsiasi linguaggio usi java,Php, Scala....
"Z."  wrote in message news:ilave7$mch$1...@news.eternal-september.org...
