Come eseguire la funzione ajax onbeforeunload?

Sto sviluppando una chat php / javascript.

Quando l’utente effettua il login, il suo nome utente viene inserito in una tabella MySQL chiamata queue . Questo inserto restituisce mysql_insert_id() che verrà memorizzato in una variabile di sessione chiamata $_SESSION['CHAT_QUEUE_ID']

Ho bisogno che la riga della tabella MySQL sia cancellata quando l’utente chiude la pagina.

Ho provato quanto segue, ma senza successo:

file js

 window.onbeforeunload = closeSession; function closeSession(){ $.ajax({ url: "/chat/process/chat.php", type: "GET" }); return "disconnected"; } 

file chat.php

 $delete= "DELETE FROM queue WHERE id = " . $_SESSION['CHAT_QUEUE_ID']; // query, etc 

C’è un modo per fare questo?

Spegni il tuo ajax async (predefinito per jquery – ajax). Ma il browser non aspetterà nulla sullo scaricamento.

prova ad impostare async : false nelle impostazioni di ajax. Ma non puoi mai essere sicuro che questo funzionerà in tutti i browser ogni volta.

vedere il commento qui: http://api.jquery.com/unload/#dsq-comment-body-132164390