【问题标题】:Js script too slow on IE 7 IE8IE 7 IE8 上的 Js 脚本太慢
【发布时间】:2014-02-07 04:25:52
【问题描述】:

我创建了一个 javascript 脚本。这个想法是当用户将鼠标悬停在产品上时,会出现一个新元素。这是我的脚本:

$('.product-item').hover(function(){
    var offset = $(this).offset();
    $('.product-hover')
        .html("<div class='product-item'>" + $(this).html() + "</div>")
        .css({
           display: 'block',
           left: offset.left,
           top: offset.top,
           width: $(this).width()
        });
});

它在 Firefox 和 Chrome 上运行良好。但是在 IE7 和 8 上,当我尝试悬停时,浏览器会停止工作一段时间(大约 10 秒)。您不能点击.product-hover 或他的子元素(例如链接和按钮)。

你能告诉我为什么以及如何解决它。
非常感谢

【问题讨论】:

  • 你用的是什么版本的jQuery?
  • 我正在使用 jQuery 1.7.1。谢谢
  • 这是您第一次将鼠标悬停在一个产品上时,还是在悬停在其他几个产品上之后?
  • 嗯,我经常在检查我的网站时看到性能问题,通常在重新加载页面或重新启动浏览器或清除缓存后问题就消失了......我们都喜欢IE。
  • 这是您第一次将鼠标悬停在一个产品上时发生,还是在悬停在其他几个产品上时发生?--->这是我第一次悬停时发生。谢谢

标签: javascript jquery internet-explorer offset


【解决方案1】:

这就是我所知道的 IE8 和 IE7 会导致您刚才描述的类似行为:

IE8 及更早版本默认设置了一个阈值限制,超时设置为 5,000,000 条语句。

微软发布了一个补丁来纠正这个问题:http://support.microsoft.com/kb/175500

请注意,微软还指出,如果需要,可以将其增加到任何级别的注册表项:

使用注册表编辑器,例如 Regedt32.exe,打开这个键:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles

注意如果 Styles 键不存在,请创建一个名为 Styles 的新键。

在此键下创建一个名为“MaxScriptStatements”的新 DWORD 值,并将该值设置为所需的脚本语句数。

如果您不确定需要将其设置为哪个值,可以将其设置为 DWORD 值 0xFFFFFFFF 以避免出现该对话框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多