jquery: unload or beforeunload?

JavascriptJquery

Javascript Problem Overview


I want to post an message to the server when user navigate off from the current page, I am using .unload right now but the result is unreliable, even in its document is said true:

> The exact handling of the unload event > has varied from version to version of > browsers. For example, some versions > of Firefox trigger the event when a > link is followed, but not when the > window is closed. In practical usage, > behavior should be tested on all > supported browsers, and contrasted > with the proprietary beforeunload > event.

Should I use beforeunload event? Is it reliable?

Javascript Solutions


Solution 1 - Javascript

Yes, beforeunload is more reliable, but be sure to assign it directly (not bound through jQuery), like this:

window.onbeforeunload = function() { /* do stuff */ };

The unload event itself wasn't meant for work to be done, only cleanup of objects...as garbage collectors get better and better, there's less reason for the browser to even fire the unload event.

Also be aware that for your specific case you'd have to make a synchronous request to the server...otherwise the browser still won't wait for the AJAX call to complete.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBin ChenView Question on Stackoverflow
Solution 1 - JavascriptNick CraverView Answer on Stackoverflow