【发布时间】:2010-02-22 15:48:34
【问题描述】:
在我的网站上,我动态修改了 DIV 的 javascript 'className' 属性。然而,这是一个极其昂贵的操作,因为 DIV 包含很多子节点。有时需要长达 1.5 秒。
有没有办法加快这个操作?比如,隐藏内容,执行操作,然后再次显示内容?
更新:
一些附加信息。
实际代码:
$("#myDiv").tabs();
它位于 .ready() 处理程序中。看 http://jqueryui.com/demos/tabs/
这是昂贵的电话。我进一步追踪到 className 属性,它消耗了所有的处理时间。
DIV 包含一个大的共享点数据网格,请参阅 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spview.renderashtml.aspx 代码在Sharepoint上运行,在WinXP + IE7上测试。
所以我想知道我们是否可以在操作 DOM 或类似的东西时禁用布局刷新。有什么技巧吗?
【问题讨论】:
-
您目前用来进行修改的代码是什么样的?
-
您能否展示您正在使用的代码以及正在修改的 HTML(或其中的示例)?
-
你试过elem.setAttribute("class", 'newclassname')吗?
-
我很困惑。
div的子节点数应该不会影响div本身的类的改变。你是不是也想碰碰孩子们的课? -
@patrick 这根本不是真的——如果容器类驱动一大堆 CSS 选择器,并且当类名更改时必须重新计算内容布局,那么可能有大量工作需要可怜的IE7不得不执行。
标签: javascript jquery css performance