2011-02-01 11 views
5

Me siento incómodo haciendo estas preguntas fundamentales dado que no soy exactamente nuevo en el desarrollo web. Pero quiero verificar mis suposiciones de todos modos ...¿Las llamadas AJAX no bloquean y cuál es su vida útil?

Estoy construyendo la grabación de vistas de imagen únicas en mi aplicación. Cuando un usuario (no un bot) visita una página de imágenes, se realiza una llamada Ajax a un proceso de fondo que recopila la información de la sesión, compara las duplicaciones y almacena la visita. Tengo todas mis referencias JavaScript, así como esta llamada en la parte inferior del HTML, justo antes del elemento </body>:

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

Por defecto, la llamada a $ .get se hace asíncronos. Sin embargo, quiero probar las siguientes suposiciones:

  • ¿Es correcto que este método garantice que la llamada a la secuencia de comandos de grabación de la vista no sea bloqueante para el resto de la UI?
  • ¿Es correcto que el script de fondo termine una vez que se haya llamado, independientemente de si el usuario navega a otra página?

Respuesta

5

Según jQuery .get reference ...

Este [$ .get()] es una abreviatura Ajax función, que es equi valente a:

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

Y $ .ajax es asíncrona (es decir, sin bloqueo) por defecto, eso es lo que significa A en Ajax. También, el código del servidor se inicia en el momento en que el servidor recibe la solicitud y luego se ejecuta independientemente del cliente que permanece en la página o no, a menos que implemente algún tipo de mecanismo para detener el servicio en ejecución que supongo no lo hiciste.

Dios bendiga!

+1

Gracias por confirmar, esto me alegra ya que aísla por completo cualquier posible penalización de rendimiento de la grabación de vistas del usuario. – Ferdy

2

que es correcta en ambos casos

4

La solicitud jQuery.get que está haciendo es asíncrona y no bloquear el DOM JavaScript u otro de continuar. La función get es un método abreviado que usa jQuery.ajax.

La segunda pregunta que no tengo una respuesta sólida - Espero que pueda depender más de cómo está estructurado el código de fondo y si se dice que la sesión/solicitud ha finalizado.

API:

Cuestiones relacionadas