我需要收到有关 ASP.NET 中的异步请求的通知。我使用了 jQuery .ajaxSend
全局事件,但在使用 UpdatePanels
时它不会触发。
是否有一种多浏览器方法可以检测页面上何时发出请求?
最佳答案
Jquery 和 ASP.Net Ajax 是两个不同的 JavaScript 框架,它们各自处理 Ajax 请求的方式不同。因此,Jquery 中使用的代码将不会挂接到 ASP Ajax 中。
我处理此类事情的一种方法是 Hook 页面请求管理器 (ScriptManager) 并向 InitializeRequest 和 EndRequest 事件添加方法。
一些类似这些的 JavaScript 应该可以解决你的问题。
<script type="text/javascript">
// Get the instance of PageRequestManager.
var PageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
// Add to the events
PageRequestManager.add_initializeRequest(PageRequestManager_InitializeRequest);
PageRequestManager.add_endRequest(PageRequestManager_EndRequest);
// Called when async postback is initialized
function PageRequestManager_InitializeRequest(sender, args)
{
}
// Called when async postback calls back
function PageRequestManager_EndRequest(sender, args)
{
}
</script>
编辑: 查看 Asp.Net Ajax 的生命周期,如果initializeRequest 太早,您还可以使用 beginRequest 事件。
关于asp.net - 如何拦截 ASP.NET 中的异步请求/获得有关异步请求的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3754231/