在我的网站上,我动态修改了DIV的javascript'className'属性。然而,这是一个极其昂贵的操作,因为DIV包含许多子节点。有时它需要1.5秒。
有没有办法加快这项行动?比如,隐藏内容,执行操作,然后再次显示内容?
更新
一些其他信息。
实际代码:
$("#myDiv").tabs();
它位于.ready()处理程序中。看到 http://jqueryui.com/demos/tabs/
这是一个昂贵的电话。我进一步跟踪了 className 属性,该属性消耗了所有处理时间。
DIV包含一个大的sharepoint数据网格,请参阅 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spview.renderashtml.aspx 代码在Sharepoint上运行,在WinXP + IE7上进行测试。
所以我想知道我们是否可以在操作DOM或类似的东西时禁用布局刷新。有什么技巧吗?
答案 0 :(得分:3)
尝试确保影响类名称正在更改的容器中包含的元素的CSS选择器仅在必要时使用容器类。显然,当您使用容器类驱动布局时,可能会有很多事情受到影响,但有时候只需div.whatever td.currency
就可以很容易地将其放入td.currency
中。例子)。
IE布局引擎对于某些事情来说真的很快,但我发现大量使用这种布局技术(我相信,这是一种非常好的做法)可能会给浏览器带来很大的负担。值得庆幸的是,IE8在这方面要好得多。
答案 1 :(得分:0)
在更改className
属性之前,通过删除两个选项卡以从父级切换来切换选项卡时,我实现了约50%的性能提升。有关实施细节,请参阅https://developers.google.com/speed/articles/javascript-dom