Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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
Asp.net 使用IE10标准模式单击UpdatePanel中的HtmlButton会导致双重XMLHttpRequest回发_Asp.net_Webforms_Updatepanel_Asp.net 4.5_Htmlbutton - Fatal编程技术网

Asp.net 使用IE10标准模式单击UpdatePanel中的HtmlButton会导致双重XMLHttpRequest回发

Asp.net 使用IE10标准模式单击UpdatePanel中的HtmlButton会导致双重XMLHttpRequest回发,asp.net,webforms,updatepanel,asp.net-4.5,htmlbutton,Asp.net,Webforms,Updatepanel,Asp.net 4.5,Htmlbutton,我们有一个.NET4.0WebForms应用程序。一个页面有一个UpdatePanel,其中包含一些HtmlButton控件。当服务器在.NET 4.0上运行时,此功能正常工作 当服务器升级到4.5时,我们注意到单击按钮会挂起浏览器。微调器将显示,用户的会话基本上被锁定,直到调用超时 在浏览器开发工具F12的网络选项卡中,我们观察到: IE10使用标准文档模式:对服务器进行两次调用。第一个没有内容,结果被中止。Fiddler报告内容长度不匹配。第二次呼叫直到超时才返回。 IE10 Compat视

我们有一个.NET4.0WebForms应用程序。一个页面有一个UpdatePanel,其中包含一些HtmlButton控件。当服务器在.NET 4.0上运行时,此功能正常工作

当服务器升级到4.5时,我们注意到单击按钮会挂起浏览器。微调器将显示,用户的会话基本上被锁定,直到调用超时

在浏览器开发工具F12的网络选项卡中,我们观察到:

IE10使用标准文档模式:对服务器进行两次调用。第一个没有内容,结果被中止。Fiddler报告内容长度不匹配。第二次呼叫直到超时才返回。 IE10 Compat视图,文档模式IE7标准:仅对服务器进行一次调用。一切都很好。 IE10在任何其他模式下,IE9也会对服务器进行2次调用,第一次调用中止,第二次调用挂起/挂起。 Chrome:对服务器进行了两次调用,但第二次调用成功。 对运行.NET4.0的服务器执行相同的观察时,显示了类似的双重调用,但在任何情况下,第二个调用都没有挂起

除了挂起的第二次调用之外,我还通过创建一个新的默认.Net 4.5 WebForms应用程序重新创建了这种双重调用行为,该应用程序包含一个UpdatePanel、一个文本和一个HtmlButton,如下所示:

ServerClick事件只是将当前时间放入文本中

这重新创建了双post行为。我还尝试过使用其他类型的按钮,比如ImageButton,它们只发出一个调用就可以正常工作


有人知道这里发生了什么吗?有没有什么方法可以避免使用HtmlButton的双重post?我假设这两个调用与挂起的第二个调用相关,但这可能是一个错误的假设。

结果表明,对于每个部分页面请求,在再次绑定之前没有解除绑定的jQuery绑定正在进行

在jQuery的$document.ready中,我设置了到各种元素的绑定。在UpdatePanel导致的部分回发期间调用此函数。因此,在某些情况下,在再次设置绑定之前,我需要执行以下操作:$'ctrl'.unbind;可能有一种方法可以检查绑定是否存在,并仅在必要时添加它


页面上还有一个使用jQuery自动调整大小插件的文本区域。初始化后,插件会在页面上添加一个克隆文本区域,用于计算文本高度。在每个部分页面更新中,都会创建一个新的文本区域。使用Chrome的开发工具很有助于发现这个问题,因为我可以看到DOM被实时更改。我添加了一些脚本来检查这些现有的文本区域并清理它们。

我有完全相同的问题,如果你还记得的话,请你再详细说明一下你的答案好吗。。。发生了什么样的jQuery绑定?@ManuelNavarro我更新了答案,提供了更多信息。希望它能帮助你朝着正确的方向前进。