我试图在用户离开页面时执行后查询。我正在使用的代码是
<script type="text/javascript">
window.onbeforeunload = function(){
var used = $('#identifier').val();
$.post('conversation.php?leave=true',{ud:used});
}
</script>
我在这里做的事情有什么问题吗?我在 FF 错误控制台中得到的结果只是说其他不相关的函数/变量未定义(因为它们正在卸载)。对于我需要修复的问题有什么提示或指示吗?
简单的答案是你不能在中进行异步 AJAX 调用beforeunload
事件可靠地发生,它会very可能会在完成之前终止,因为浏览器垃圾收集页面。你can进行同步调用,如下所示:
$.ajax({
type: "POST",
url: 'conversation.php?leave=true',
data:{ud:used},
async: false
});
Please don't不过,请这样做,因为它会将用户困在页面中的时间超过需要的时间,并阻止他们离开,从而导致负面体验。请注意,这也锁定浏览器当它执行时,async: false
在任何情况下都应尽可能避免。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)