我有以下代码替代品,两者都不令人满意。我正在使用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
答案 0 :(得分:1)
每次触发jQuery(窗口).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/