当用户离开页面或关闭窗口时,我想发送一个ajax请求。
以下是我的代码:
<script type="text/javascript">
function sendajax(){
$.ajax({
url: "someurl",
data: mydata,
async : false
});
}
</script>
<script type="text/javascript">
window.onbeforeunload=function(){sendajax();};
</script>
当事件发生时,该事件会触发两次。
为什么会发生这种情况?
我知道可以通过添加变量 var ajaxSent=true;
来防止它发生,但也许有一种更简洁的方法可以实现呢?
更新:
我用其他代码替换了 sendajax 函数的内容(不发送 ajax 请求),发现问题不在于 ajax。它仍然会进入函数两次。