【问题标题】:Why does this website freeze in IE 7 but not in any other browser?为什么这个网站在 IE 7 中冻结,而在任何其他浏览器中却没有?
【发布时间】:2010-03-02 19:24:09
【问题描述】:

我最近为一家公司建立了零件目录。它在 Firefox、Chrome、Safari 等中完美运行。

但是,在 IE 7 中,除了实际的部分页面本身之外,每个页面都可以正常工作:http://www.swstruckbodiesandtrailers.com/index.php?pageId=69

它实际上锁定了整个浏览器,在查看源代码后,我不知道为什么。

有人有什么见解吗?它只是简单的 HTML、CSS 和几行 jQuery——没有什么特别之处。

我以前从未遇到过冻结整个浏览器的页面。

【问题讨论】:

  • 感谢您的检查。我想这是一个特定于 IE 的问题,无论版本如何。

标签: javascript html css internet-explorer freeze


【解决方案1】:

你需要一块一块地砍掉网站,找出锁定的确切原因。

【讨论】:

    【解决方案2】:

    好的,我把攻击性代码隔离到这个:

    <div class='partsLevel1'> 
      <h3><span class='floatLeft'>Box Parts (0)</h3> 
    </div>
    

    显然这是我的一个简单错误,因为我忘记关闭 &lt;span&gt; 标记。我很惊讶这实际上冻结了 IE。对他们来说,这似乎不是一个非常优雅的失败。

    看起来当 IE 获取多个未关闭的浮动元素时,它只是完全锁定。

    我在&lt;h3&gt; 元素内有一个看似不必要的&lt;span&gt; 的原因是,当您登录时,有一些管理链接是浮动的。

    感谢大家的帮助。

    【讨论】:

    • 看起来它可以通过 XML 验证通过。
    【解决方案3】:

    我的猜测是有一个 AJAX 调用由于某种原因没有到达正确的 ReadyState。

    【讨论】:

    • 页面加载期间没有发生 AJAX。唯一的 AJAX 调用是在单击页面底部的登录链接时。
    • 由于 AJAX 调用(通常,按照设计)是异步的,它们只是不会锁定浏览器。唯一会发生的事情是onreadystatechange 事件侦听器不会被调用很长时间,至少不会与readyState==4 一起调用。
    • 我认为您正在假设实现...这可能是一个 Do 循环检查 xmlhttp 对象上的 readystate,实际上这可能会锁定浏览器。在这一点上无关紧要,因为看起来问题已经解决了。
    • 确实如此,但你什么时候会写一个do 循环来做到这一点?我真的很想知道,你能简单解释一下吗?
    • 我只是在想一个简单的同步实现。它一直留在我的脑海中,仅仅是因为我在上一份工作中让一个开发人员编写了这样的代码,在 Safari b/c 中锁定了一个网站,readystate 序列与其他浏览器中的有点不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 2011-09-20
    • 2015-10-21
    • 1970-01-01
    • 2017-12-21
    相关资源
    最近更新 更多