jquery卸载/绑定可靠的跨浏览器解决方案

jquery卸载/绑定可靠的跨浏览器解决方案,jquery,bind,Jquery,Bind,我有以下代码备选方案,两者都不令人满意。我正在使用jquery1.7.2 第一个在Firefox中是完美的,但在IE9中,它发布但没有完成写入数据库的操作。我已经试着按照其他人的建议将其设为ASYNC false,但奇怪的是,这似乎没有任何区别。它可能在其他浏览器中也不起作用 第二个页面确实完成了,但会弹出一个确认关闭页面对话框。我已经看到关于如何阻止这种情况的建议,但我无法达到同样的结果 有人能给我一个替代方案吗?或者给我正确的异步错误代码,它适用于IE9和第一个?或者告诉我如何正确防止确认关

我有以下代码备选方案,两者都不令人满意。我正在使用jquery1.7.2

第一个在Firefox中是完美的,但在IE9中,它发布但没有完成写入数据库的操作。我已经试着按照其他人的建议将其设为ASYNC false,但奇怪的是,这似乎没有任何区别。它可能在其他浏览器中也不起作用

第二个页面确实完成了,但会弹出一个确认关闭页面对话框。我已经看到关于如何阻止这种情况的建议,但我无法达到同样的结果

有人能给我一个替代方案吗?或者给我正确的异步错误代码,它适用于IE9和第一个?或者告诉我如何正确防止确认关闭

// Sends the post but does not complete the post in IE9
jQuery(window).unload(function() {
jQuery.post(
    MyAjax.ajaxurl, etc

// works in IE 9 but throws up a confirm dialog box
jQuery(window).bind("beforeunload", function() { ...
jQuery.post(
    MyAjax.ajaxurl, etc

只是不要每次触发jQuery(window.scroll)时都发布。仅当用户停止滚动时发布。像这样:

function sendQuery() {
    console.log('scrolled');
}

var scrollTimeout = null;
$(window).bind('scroll', function() {
    if (window.scrollTimeout) {
        clearTimeout(window.scrollTimeout);
    }
    window.scrollTimeout = setTimeout(sendQuery, 200);
})

还有一个实例-

我不认为所有浏览器都支持
unload
beforeunload
事件。这必须是一个同步调用,或者返回beforeunload就会中止。我试图做的是捕获滚动的最大距离。我在每次尝试发布jQuery(窗口)时都会遇到问题。滚动被触发,而且效率极低,因此任何表示用户正在离开页面的事件都可以。如果是这种情况,可能您希望使用类似的功能