在一个实例中更新TVJS中的DOM似乎几乎是即时的(DOM中约有1000个锁定项),而在另一个实例则会阻塞UI 30秒(约有10000个锁止项)。
文档参考被存储为参考,并使用以下几个属性进行更新:
var element = doc.getElementsByTagName('lockup').item(index);
element.setAttribute('id', 'item-highlight');
element.setAttribute('autoHighlight', 'true');
是否有更高性能/更高效的方法来更新DOM?
您在所示块周围有一个循环(请参阅index
),我说得对吗?我想,doc.getElementsByTagName('lockup')
——每次处理整个DOM——都会占用相当多的时间。由于它每次都会返回相同的数组,所以将其拉到循环前面。像这样的。。。
var elems = doc.getElementsByTagName('lockup')
for (var elem of elems) {
elem.setAttribute(...)
}