vctfence / scrapbee

Mozilla Public License 2.0
39 stars 23 forks source link

初始化的DOM插入性能 #10

Closed yfdyh000 closed 5 years ago

yfdyh000 commented 5 years ago

目前侧栏初始化树时,如果rdf含有大量项目,可能会非常慢,性能分析看到很多jQuery造成的“解析HTML”。 我的一个2.5MB的rdf,加载一次会在解析HTML上花费40秒,期间侧栏不可用。 尝试了不少方法来调整createLink等代码,但未能缓解。

将插入到根容器完全拆出来(改成插入createDocumentFragment或者分离的jQuery对象),不知道是否能有用,我尝试了但好像没效果。

profilejson.zip

vctfence commented 5 years ago

这个可能不大好解决, 暂时没有好的思路.

yfdyh000 commented 5 years ago

如果点击时再加载和渲染子树,是否会快一些,但目前的响应逻辑也许要大改。可能不行,展开的树比较大(项目较多)时,仍然会有很多次DOM插入。

虚拟DOM技术,不知道怎么做,和是否有帮助。

能否分阶段插入呢,比如每50项插入一个片段,最后再将片段汇总插入根容器。

vctfence commented 5 years ago

暂时的想法是直接生成全树html, 一次性插入, 理论上要快得多吧 :)

vctfence commented 5 years ago

增加了一个事先生成完整html再一次性插入的分支 "faster-tree", 经测略快了一点

vctfence commented 5 years ago

感觉性能主要损失在xmlDoc.evaluate处, 也就是在解释xml时查询结点产生的.