2

我有以下代码替代方案,但都不令人满意。我正在使用 jQuery 1.7.2

第一个在 Firefox 中是完美的,但在 IE9 中它发布但没有完成写入数据库的操作。正如其他人所建议的那样,我试图将其设为 ASYNC 错误,但奇怪的是,这似乎没有任何区别。它可能也不适用于其他浏览器。

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

谁能给我一个替代方案?或者给我正确的 ASYNC 错误代码,它适用于第一个 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
4

1 回答 1

1

只是不要在每次触发 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);
})

还有一个活生生的例子 - http://jsfiddle.net/AJnk4/

于 2012-06-28T05:43:16.837 回答