问题描述
|
解决方法
分析表明克隆确实很慢。您是否尝试过使用固定的DOM字符串手动创建元素(而不是使用
.clone()
)并使用委托进行事件处理?在任何浏览器中,这都可能会改善整体性能。
编辑:和手动,我的意思是这样的:
var newElem = $(\'<div class=\"trackOn\">...</div>\');
然后针对事件:
tracklistOnElem.delegate(\'.trackBotton .addSide\',\'click\',function() { addSide(this); return false; });
tracklistOnElem.delegate(\'.trackBotton .addTrack\',function() { addTrack(this); return false; });
等等
编辑#2:在这里阅读文档也总是有回报的:http://api.jquery.com/clone/表示在jQuery 1.5.0中,复制事件和数据的默认设置错误地设置为true
。在1.5.1和好友中,它又回到了4,因此请尝试使用jQuery 1.6.0或1.5.2。这可能也会有所帮助。您也可以修改clone()调用以手动将“ 4”指定为第一个也是唯一的参数,以避免再次发生这种情况。
,我尝试了Firebug插件的YSlow插件。跳到我身上的一件事是:
F级:减少DOM元素的数量
页面上有3203个DOM元素
复杂的页面意味着需要下载更多的字节,也意味着JavaScript中的DOM访问速度较慢。减少页面上DOM元素的数量以提高性能。
阅读更多:http://developer.yahoo.com/performance/rules.html#min_dom
也许在页面加载后在javascript中构建DOM元素会有所帮助。