Internet Explorer的操作中止和延迟问题

时间:2009-04-16 19:44:35

标签: asp.net javascript internet-explorer asp.net-ajax

如果您不知道操作中止错误是什么,请参阅Microsoft KB文章,http://support.microsoft.com/default.aspx/kb/927917。关于它的帖子也很多,但它的简单答案是这样的;只有在您尝试操作的元素被加载之前尝试通过JavaScript操作DOM元素时才会出现错误。

我知道Internet Explorer(IE)臭名昭着的操作中止是如何发生的,并知道如何解决它。我遇到的问题是一个非常奇怪的场景。使用IE7在本地和开发机器上进行测试时,我从未遇到过操作中止错误(两个站点都以http身份运行)。

然而,在我们客户的测试网站上,它一直在发生。不幸的是,我的测试环境与客户端的测试环境不同,因此添加了一些变量,但我看到的主要区别是客户端的测试站点正在使用SSL。

是否曾有人曾为SSL网站发生过操作中止错误?

另一个想法突然出现在我脑海中,这是一个延迟问题。本地网站几乎瞬间加载,而在我的客户端的测试网站上,页面加载速度较慢。因此,考虑到这一点,我让Fiddler运行并模拟了以旧学校调制解调器速度运行的性能,仍然没有操作在本地或我们自己的测试服务器上中止错误。

仅供参考:该网站是使用ASP.NET AJAX Extensions 1.0的ASP.NET 2.0网站。有问题的页面上还有AJAX Control Toolkit的Cascading Drop Down。

是的,据我所知,操纵DOM的所有JavaScript都在标记的末尾,而不是开头。

非常感谢任何帮助或评论。

2 个答案:

答案 0 :(得分:1)

在网上搜索之后我发现了这个问题。它与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,仍然需要此修复程序。

答案 1 :(得分:0)

我猜你的测试盒上没有SSL的原因是由于证书的成本。你知道吗,你可以获得免费的短期证书吗?我经常用它们来解决这样的问题。

例如RapidSSL执行free 30 day certificate