如果你不知道操作中止错误是什么,这里有一篇关于它的Microsoft知识库文章,http://support.microsoft.com/default.aspx/kb/927917.关于它的帖子也很多,但对此的简单回答是这样的;如果您尝试在加载您尝试操作的元素之前通过JavaScript操作DOM元素,则只会发生错误.
我知道Internet Explorer(IE)臭名昭着的操作中止是如何发生的,并知道如何解决它.我遇到的问题是一个非常奇怪的场景.使用IE7在本地和开发机器上进行测试,我从未得到操作中止错误(两个站点都以http身份运行).
但是,在我们客户的测试网站上,它始终存在.不幸的是我的测试环境与客户端的测试环境不同,因此添加了一些变量,但我看到的主要区别是客户端的测试站点正在使用SSL.
另一个想法突然出现在我脑海中,这是一个延迟问题.本地网站几乎瞬间加载,而在我的客户端的测试网站上,页面加载速度较慢.因此,考虑到这一点,我让Fiddler运行并模拟了在旧学校调制解调器速度下运行的性能,仍然没有操作在本地或在我们自己的测试服务器上中止错误.
仅供参考:该站点是使用ASP.NET AJAX Extensions 1.0的ASP.NET 2.0站点.有问题的页面也有AJAX Control Toolkit的Cascading Drop Down.
是的,据我所知,操纵DOM的所有JavaScript都在标记的末尾,而不是开头.
非常感谢任何帮助或评论.
解决方法
在搜索完互联网后,我发现了这个问题.它与ASP.NET AJAX客户端框架中的错误有关.
我会解释我发现的内容:
问题是由于Internet Explorer / ASP.Net AJAX错误而发生的竞争条件.当应用程序在网页上具有大量启用ASP.Net AJAX的服务器控件时,遇到此问题的可能性会增加.这个问题在这里解释,http://seejoelprogram.wordpress.com/2008/10/03/fixing-sysapplicationinitialize-again.我已将此修复程序添加到我正在处理的项目中.
如果使用ASP.NET 3.5 SP1,仍然需要此修复程序.