【发布时间】:2011-02-02 18:01:40
【问题描述】:
页面在 nyroModal 中呈现(通过 ajax 加载),并且在实际显示页面之前使用几个插件对 DOM 进行了相当多的操作。
在非 IE 浏览器和 IE7 中一切正常,但在 IE8 中,可调整大小和可拖动的 div 非常缓慢,并且会一直爬行。
我知道IE8 is slow。我知道我的 DOM 很大。我知道我使用了很多插件。我的问题是,究竟是什么让它变慢了,因为其他浏览器做得很好?
我一个接一个地停用了每个插件以找到罪魁祸首。只有激活了可调整大小,它仍然很慢。
我使用了 IE8 分析器,它说偏移量大部分时间都在使用。
编辑:我使用 dynaTrace AJAX 版分析了页面,它告诉我这两个函数负责最多的执行时间:
jQuery.fn.offset = function(options)
和
jQuery.expr.filters.hidden = function(elem)
都在 jquery.js 中
我在某处读到 IE8 存在偏移问题,但我该如何规避呢?
Edit2:我构建了一个测试页面,其中只有一个链接来打开页面,所有调整大小都在模式中。在 ie8 中也很好用!所以我猜 modal-parent-page 的大 DOM 是问题所在。
任何建议表示赞赏!
【问题讨论】:
-
我不知道你使用 jQuery 的经验,但你可能想看看 Addy Osmani 在这次演讲中给出的一些性能改进。 vimeo.com/18846584
-
我已经实现了大部分速度改进。不过讲的很好,谢谢分享!
标签: javascript jquery performance jquery-ui internet-explorer-8