Básicamente, una vez que un usuario deja una página web en mi aplicación, necesito llamar a una secuencia de comandos PHP con AJAX, que insertará un tiempo pasado en la página web a la base de datos y luego abandonar la página.
Es importante esperar a que finalice la solicitud AJAX porque las páginas web de mi aplicación no son accesibles para los usuarios a menos que hayan pasado cierto tiempo en una página anterior (digamos dos minutos).
Aquí está mi código jQuery:
$(document).ready(function() {
var teid = TEID;
var startTime = new Date().getTime();
$(window).unload(function() {
var timeSpentMilliseconds = new Date().getTime() - startTime;
var t = timeSpentMilliseconds/1000/60;
$.ajax({
type: 'POST',
url: '/clientarea/utils/record-time',
data: 'teid=' + teid + '&t=' + t
});
});
});
¿Cómo debería cambiarlo por lo que esperará a que la petición AJAX para terminar antes de salir de la página web?
EDIT:
O podría ser mejor (más fácil) para dejar que la petición AJAX se repetirá cada minuto más o menos. ¿Es eso posible?
Hmm. Gracias. He actualizado mi pregunta. Sería más fácil simplemente dejar que la solicitud AJX repita cada digamos un minuto. ¿Como podría hacerlo? –
Recomiendo evitar eso, ** especialmente ** en 'descargar'. – jAndy
He encontrado que siempre hay una mejor solución que hacer 'async: false', independientemente del problema. –