11

我最近被要求帮助调试一个导致 IE8 在某些情况下崩溃的网站问题。拥有该网站的公司无法重现该问题,但他们收到了许多受影响用户的报告。

我能够重现该问题,并最终发现它是由这个 jQuery/IE 8 问题引起的。当body使用 CSS 将背景图像应用于标签并加载 jQuery 时,会出现此问题。一篇关于 jQuery bug 票证评论的帖子提供了这个 jsFiddle 示例,至少对我来说,它始终如一地重现了这个问题。

我遇到的问题是在测试环境中可靠地复制它。任何人都可以建议测试这种事情的方法吗?尽管复制了 jsFiddle 示例使用的确切代码,但我无法在本地始终如一地重现该问题 - 它可能依赖于特定的时间,但我不确定。我想在自动测试套件中添加一些东西来检查这个问题(之前已经应用了 jQuery 修复,但在以后的版本中意外删除了)。

如何测试浏览器崩溃?该站点是用 Perl 编写的,并且使用 Selenium 和 WWW::Mechanize 进行了一些自动化测试。

注意:我考虑在Pro Webmasters上发布此内容,但在阅读了常见问题解答后,我认为它更适合 SO。

4

3 回答 3

7

我认为除了尽可能多地组合各种因素来运行单元测试和压力测试之外,你别无他法。

这就是所谓的“曼德尔虫”的本质。

于 2011-09-05T17:12:40.210 回答
1

鉴于唯一一致的事情似乎是如果您在样式声明之前加载 JQ 没有问题,我会尝试将 JQ 设置为在 CSS 声明/链接的 CSS 文件加载后以不同的时间间隔加载。

从样式建立之后到 DOM 准备好之后。我的猜测是,JQ 引用了一些 IE8 已经可以访问的东西,由于它的 DOM 加载过程中发生了一些非常愚蠢的事情,它还没有准备好分享。

即使在您重新打开应用程序后,我也看到过多次开发人员工具在 IE8 中永久崩溃的事件。如果不是这样,我认为这些错误不太可能。

编辑:公平地说,JQ 可能在 1.62 中做了一些奇怪的事情,否则这个错误通常会更广为人知。IE8 已经出来几年了。

于 2011-09-13T00:27:52.653 回答
0

您可以尝试使用一些SauceLabs提供跨平台、跨浏览器测试功能的产品进行测试。

于 2011-09-09T18:29:47.333 回答