Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery IE中异步调用触发window.onbeforeunload吗?_Jquery_Internet Explorer_Asynchronous_Onbeforeunload - Fatal编程技术网

Jquery IE中异步调用触发window.onbeforeunload吗?

Jquery IE中异步调用触发window.onbeforeunload吗?,jquery,internet-explorer,asynchronous,onbeforeunload,Jquery,Internet Explorer,Asynchronous,Onbeforeunload,显然,只要有页面刷新,就会调用someFunction()。但在internet Explorer中,只有在部分页面加载时,才会调用someFunction()。我怎样才能防止这种情况发生?或者,如何使用jQuery添加事件监听器,该监听器在进行异步调用时被触发?在异步请求的生命周期中,有许多方法被调用。你可以和他们中的任何一个打交道。请参阅以获取列表。这可以防止您像这里一样遇到不同的浏览器实现 例如,使用$.ajaxSetup()我可以在每个请求之前设置要运行的函数: window.onbef

显然,只要有页面刷新,就会调用someFunction()。但在internet Explorer中,只有在部分页面加载时,才会调用someFunction()。我怎样才能防止这种情况发生?或者,如何使用jQuery添加事件监听器,该监听器在进行异步调用时被触发?

在异步请求的生命周期中,有许多方法被调用。你可以和他们中的任何一个打交道。请参阅以获取列表。这可以防止您像这里一样遇到不同的浏览器实现

例如,使用
$.ajaxSetup()
我可以在每个请求之前设置要运行的函数:

window.onbeforeunload = function (e) {
    someFunction();
}
您可能还希望在调用完成后运行逻辑,在这种情况下,您将对传递给
$的对象的
complete
成员应用函数。ajaxSetup()

这些方法有几个参数,如果您正在执行需要知道具体发出了哪些请求的逻辑,您可能需要使用这些参数。例如,Complete将被传递给jQuery使用的XHR对象,以及为调用返回的状态

$.ajaxSetup({
  complete: function() {
    console.log( 'Call completed.' );
  }
});

感谢您的回复,但由于某些原因,它们不会被触发。可能是因为部分刷新页面的链接是通过控件生成的?我对.net了解不多。@SammyD只有在使用jQuery的ajax方法进行异步调用时,才会触发这些全局回调。您是使用jQuery的ajax方法进行调用,还是手动构造XHR对象?不是,他们使用jQuery的ajax方法。它正在使用。@SammyD对不起,你的问题没有提到ASP.NET控件。我是一名PHP开发人员,对ASP.NET几乎没有经验。请修改你的问题,以便其他人更好地帮助你。
$.ajaxSetup({
  complete: function() {
    console.log( 'Call completed.' );
  }
});
$.ajaxSetup({
  complete: function( jqHXR, status ) {
    console.log( 'Completed: ' + status );
  }
});