¿Cómo ejecutar la function ajax antes de la descarga?

Estoy desarrollando un chat php / javascript.

Cuando el usuario inicia session, su nombre de usuario se inserta en una tabla MySQL llamada queue . Este inserto devuelve el mysql_insert_id() que se almacenará en una variable de session llamada $_SESSION['CHAT_QUEUE_ID']

Necesito que la fila de la tabla MySQL se elimine cuando el usuario cierra la página.

Intenté lo siguiente, pero sin éxito:

file 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?

Dispare su ajax async (por defecto para jquery – ajax). Pero el browser no esperará nada en la descarga.

intente configurar async : false en ajax-settings. Pero nunca puede estar seguro de que esto funcionará en todos los browseres cada vez.

vea el comentario aquí: http://api.jquery.com/unload/#dsq-comment-body-132164390