为什么不';当从更新面板(ASP.NET Web窗体)内部触发时,是否调用my jQuery click事件?

为什么不';当从更新面板(ASP.NET Web窗体)内部触发时,是否调用my jQuery click事件?,asp.net,ajax,webforms,updatepanel,microsoft-edge,Asp.net,Ajax,Webforms,Updatepanel,Microsoft Edge,我正在努力追踪IE11和Edge中一个难以捉摸的错误。我注意到Chrome和Edge之间在网络调用方面存在差异,我不确定这是否只是浏览器开发工具显示流量的方式之间的差异,或者这是否表明Edge中确实发生了Chrome中没有的事情 以下屏幕截图来自Edge中的开发工具,在页面加载过程中记录。 看起来对服务器的某些请求未被视为经过身份验证,因此它被重定向到登录页面。Chrome中相同的页面加载序列没有显示这一点——它只有一个页面请求。我的第一个问题是-有没有一种方法可以使用Edge开发工具跟踪哪个

我正在努力追踪IE11和Edge中一个难以捉摸的错误。我注意到Chrome和Edge之间在网络调用方面存在差异,我不确定这是否只是浏览器开发工具显示流量的方式之间的差异,或者这是否表明Edge中确实发生了Chrome中没有的事情

以下屏幕截图来自Edge中的开发工具,在页面加载过程中记录。

看起来对服务器的某些请求未被视为经过身份验证,因此它被重定向到登录页面。Chrome中相同的页面加载序列没有显示这一点——它只有一个页面请求。我的第一个问题是-有没有一种方法可以使用Edge开发工具跟踪哪个东西发出了特定的请求?或者这是我需要担心的事情,如果这是预期的行为

关于我试图解决的bug的一些背景信息 该页面使用UpdatePanels和jQueryAjax向服务器发出请求。相关的jqueryajax调用是在更新面板内的对象上触发的click事件中进行的。我已经确认这些点击事件不会触发回发。单击处理程序似乎执行得很好(大多数情况下),但问题是有时它们似乎根本没有执行——控制台中没有任何my console.log语句,并且在再次单击之前不会发生任何事情(除了页面稍微跳跃)。每隔一次点击似乎都有效。当页面上加载了大量数据时,似乎会发生这种情况(请注意dev工具中第一个请求的加载时间)

我已确保在每次更新面板回发后使用重新绑定更新面板内对象上的单击事件

Sys.WebForms.PageRequestManager.getInstance().add_endRequest
该站点使用表单身份验证。我正在测试的站点上只有一台服务器-不涉及负载平衡器


此外,在任何人提出建议之前,我们正试图离开更新面板,但我们还没有完全准备好退出这个严重依赖它们的页面。这也是我的首选解决方案:)

您提到相关网页很大。
因此,当您第一次快速单击这样的客户端超链接/按钮时,JavaScript加载并不总是完成的,这意味着会触发常规http GET请求,您可以在开发人员工具中看到这一点。
在其他浏览器中也会看到这一点

在onload完成之前,尝试找到一种方法来禁用这些客户端超链接/按钮

您可以首先通过以下方式禁用它们:

<a class="clientsideButton" href="#" onclick="javascript:return false">click here</a>

然后启用它们。
别忘了在部分回发后重新绑定它们

<script>
$(function() {
    $(".clientsideButton").on("click", 
        function() { 
            // Make AJAX request.
    });
});
</script>

$(函数(){
$(“.clientsideButton”)。在(“单击”,
函数(){
//发出AJAX请求。
});
});

UpdatePanel中是否有触发回发的控件(因为必须有)?@pfx中有。不过,我很确定它们不会在有问题的点击过程中触发。其他具有回发触发器的控件是否会干扰我的jQuery单击事件?也许Microsoft Ajax中有什么东西可能会干扰其他jQuery事件,特别是在IE/Edge上。试试看:单击这样的回发触发器控件,然后单击jQuery非回发控件,看看最后一个控件是否仍然有效。@pfx如果我这样做,大约有一半的时间,第一次单击就不起作用(复制我提到的bug)但随后的点击就可以了。另一半的时间它工作得很好。我想知道是不是有一个种族条件使得追踪的原因更加棘手。例如,当我在测试时打开开发工具时,我根本无法复制它。然后回发后重新绑定就可以了。这是一个大页面吗?是不是你做了fi在javascript加载完成之前rst单击,这意味着jQuery单击处理程序尚未设置?