2012-02-08 15 views
5

Faccio una chiamata asincrona per lo stesso URL per più volte, ma la risposta è arrivata in modo sequenziale. Si prega di vedere l'immagine allegata, La richiesta è stata avviata solo dopo il completamento della prima richiesta, lo stesso accade per le richieste secondarie.Più richieste Ajax per lo stesso URL

enter image description here

Ma se l'URL è diverso le risposte non sono sequenziali. Confermami se viene richiesto un URL, non farebbe firefox un'altra richiesta per lo stesso URL?

+0

Hai verificato che l'interfaccia sia in grado di gestire più richieste? – fyr

+0

Credo che la barra della durata mostri varie fasi, al passaggio del mouse viene visualizzata la ricerca DNS e la connessione, se fosse l'interfaccia lato server che non era in grado di supportare la concorrenza si vedrebbe una lastra verde per la seconda richiesta che inizia all'incirca nello stesso punto. –

+0

Si prega di correggere se la mia comprensione è sbagliata su questo. Quando passo il mouse sulla barra di stato per la seconda richiesta, "+ 1.44s Avviato" significa che avvia la richiesta dopo aver completato la prima richiesta che completa in 1.44s. Ma se I URL diversi, ogni richiesta ha il tempo di avvio come "0" –

risposta

8

La cache di Necko può gestire solo un writer per voce di cache. Quindi, se si fanno più richieste per lo stesso URL, il primo aprirà la voce cache per la scrittura e quelle successive bloccherà la voce cache aperta fino al termine del primo. C'è del lavoro in corso per rearchitect la cache per rimuovere questa restrizione.

+0

Grazie Boris !!! –

+2

Il suffisso di un parametro querystring come? _cacheBuster = [randomNumber] risolve la limitazione? –

+0

Sì. Questo è quello che ho fatto, in realtà ho aggiunto il timestamp per differenziare le richieste. –

1

Generalmente i browser avranno un limite al numero di richieste concorrenti che serviranno a un particolare nome host, in passato era 2, ma la maggior parte dei browser ora lo ha sollevato. La definizione di un proxy può anche influire su questi limiti in alcuni browser. Di nuovo questi sono applicati lato client. Tuttavia dovrebbe essere più di uno in ogni caso. Potrebbe anche essere possibile che Firebug riduca anche il limite, controlla circa about: config per le configurazioni concorrenti.

Sei sicuro di non aspettare fino a quando non viene eseguita la richiamata prima di lanciare la richiesta successiva dato che ne hai solo uno sospetto che stia succedendo davvero?

+0

Grazie a wtfcoder, sono sicuro che il controllo non è in attesa di effettuare una seconda richiesta fino alla richiamata. Ma quando vedo la risposta in firebug è sequenziale. se firefox si limitasse a fare una seconda richiesta per lo stesso URL che è in attesa di una risposta. –

Problemi correlati