Estoy desarrollando un chat php/javascript.¿Cómo se ejecuta la función ajax antes de la descarga?
Cuando el usuario inicia sesión, su nombre de usuario se inserta en una tabla MySQL llamada queue
. Este inserto devuelve el mysql_insert_id()
que se almacena en una variable de sesión llamada $_SESSION['CHAT_QUEUE_ID']
necesito la fila de la tabla de MySQL que se eliminará cuando el usuario cierra la página.
He intentado lo siguiente, pero sin éxito: el archivo
js
window.onbeforeunload = closeSession;
function closeSession(){
$.ajax({
url: "/chat/process/chat.php",
type: "GET"
});
return "disconnected";
}
chat.php
$delete= "DELETE FROM queue WHERE id = " . $_SESSION['CHAT_QUEUE_ID'];
// query, etc
¿Hay alguna manera de hacer esto?
¿Sabe usted que el apoyo del navegador para '' onbeforeunload'' es limitado? P.ej. la ópera no lo admite. – ckruse
No había pensado en eso. ¿cualquier sugerencia? – matheusvmbruno
El método común es definir un tiempo de espera. Si un usuario no ha tenido una actividad durante un tiempo específico, se desconecta. – ckruse