2011-02-01 16 views
5

Mi sento in imbarazzo a porre queste domande fondamentali, dato che non sono esattamente nuovo nello sviluppo web. Ma voglio comunque ricontrollare le mie supposizioni ...Le chiamate AJAX non si bloccano e qual è la loro durata?

Sto costruendo la registrazione di visualizzazioni di immagini uniche nella mia applicazione. Quando un utente (non un bot) visita una pagina immagine, viene effettuata una chiamata Ajax a un processo back-end che raccoglie le informazioni sulla sessione, le confronta per duplicazioni e memorizza la visita. Ho tutti i miei riferimenti JavaScript così come questa chiamata al fondo del HTML, poco prima l'elemento </body>:

$.get(basepath + "image/1329/record/human", function(data){ 
console.log("Data Loaded: " + data); 
}); 

Per impostazione predefinita, la chiamata a $ .get è fatto asincroni. Tuttavia voglio testare le seguenti ipotesi:

  • È corretto che questo metodo assicuri che la chiamata allo script di registrazione della vista non sia bloccante per il resto dell'interfaccia utente?
  • E 'corretto che lo script di back-end finisca una volta chiamato, indipendentemente dal fatto che l'utente passi ad un'altra pagina?

risposta

5

Secondo jQuery .get reference ...

Questo [$ .get()] è una scorciatoia Ajax funzione, che è equi valente a:

$.ajax({ url: url, data: data, 
     success: success, dataType: dataType 
}); 

e $ .ajax è asincrona (cioè non bloccante) per impostazione predefinita, questo è ciò che significa A in Ajax.

Inoltre, il codice server back-end viene avviato nel momento in cui il server riceve la richiesta e quindi viene eseguito indipendentemente dal fatto che il client rimanga sulla pagina o meno, a meno che non si implementi un qualche tipo di meccanismo per arrestare il servizio in esecuzione che suppongo non l'hai fatto.

Dio vi benedica!

+1

Grazie per la conferma, questo mi rende felice poiché isola completamente qualsiasi possibile penalizzazione delle prestazioni delle visualizzazioni di registrazione da parte dell'utente. – Ferdy

2

che è corretto su entrambi i fronti

4

La richiesta jQuery.get che stai facendo è asincrona e non bloccherà il DOM JavaScript o altro di continuare. La funzione get è un metodo abbreviato che utilizza jQuery.ajax.

La seconda domanda per cui non ho una risposta solida - mi aspetto che dipenda più da come è strutturato il codice back-end e se è stato detto che la sessione/richiesta è terminata.

API:

Problemi correlati