【问题标题】:jScrollPane causes slow script warningjScrollPane 导致脚本缓慢警告
【发布时间】:2011-11-15 11:53:58
【问题描述】:

我在 IE 9 中遇到了慢速脚本警告,同时在包含可滚动(即内部的一些 jscrollpanes)覆盖的页面上使用 jscrollpane 并带有一堆内容。在 Firefox 8 中一切正常,页面构建速度很快。在 IE 上,它需要很长时间(大约一分钟),并且折叠/展开其中一个滚动区域(即显示/隐藏)会导致页面再次冻结很长时间。显然这只是结合IE的问题。

相同页面但没有添加 .jscrollpane() 在 IE 中的速度与在 Firefox 中一样快。

我正在使用 jscrollpane 2.0.0.beta10 和 jquery 1.7,但它恰好与 jquery 2.0.0.beta9 和 jquery 1.6 相同。

【问题讨论】:

  • 我很惊讶 IE 并没有在所有网站上都给出警告!我知道,坏笑话。 jscrollpane() 是否在文档 ready 事件处理程序中调用? (jquery ready())
  • 通过一些调试,我找到了答案:在 jquery.jscrollpane.js 中,函数 initialiseVerticalScroll() 使用性能非常差的选择(至少对于 IE)来调整垂直滚动条的大小: container.find('> .jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow').each( 特别是当 container 包含很多元素时,它似乎给 IE 带来麻烦。修复很简单,因为事实上.jspVerticalBar 已经被称为 verticalBar:verticalBar.find('>.jspCap:visible,>.jspArrow').each( 同样的问题/解决方案应该适用于相应的水平条。
  • 您应该将其发布为答案并接受它。
  • 请按照 John Conde 的建议将其作为答案发布。

标签: jquery internet-explorer jscrollpane


【解决方案1】:

在评论中发布 user1047487 的答案,以便更容易找到(还添加了一些格式)。

在 jquery.jscrollpane.js 中,函数initialiseVerticalScroll() 使用了一个性能非常差的选择(至少对于 IE)来调整垂直滚动条的大小:

container.find('>.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow').ea‌​ch

当容器包含很多元素时,这尤其慢。

修复非常简单,因为.jspVerticalBar 已经被称为verticalBar

verticalBar.find('>.jspCap:visible,>.jspArrow').each

同样的问题/解决方案应该适用于相应的水平条。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多