【技术实现步骤摘要】
DOM数据更新方法、页面更新方法及装置
本公开涉及智能终端领域,尤其涉及DOM数据更新方法、页面更新方法及装置,以及电子设备和计算机可读存储介质。
技术介绍
随着智能终端的发展,在智能终端中的应用种类也越来越多,在通过智能终端打开网页页面,或者使用快应用时,需要在框架(framework)中运行页面对应的DOM(DocumentObjectModel),文档对象模型)树来渲染页面内容。DOM是W3C组织推荐的处理可扩展标志语言的标准编程接口,一个页面可以对应于一个DOM树,其是一种抽象语法树(AbstractSyntaxTree,简称AST),是页面源代码的抽象语法结构的树状表现形式,DOM树具有多种节点。当新收到页面更新数据时,会根据更新数据修改DOM结构。但是每一次修改都要销毁已有的DOM结构并重新创建DOM结构,导致运算量大,系统运行成本高,如果在同一时间内进行了多次更新会引起线程阻塞导致性能变差。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种DOM数据更新方法、页面更新方法及装置,以及电子设备和计算机可读存储介质。根据本公开实施例的第一方面,提供一种DOM数据更新方法,方法包括:获取Fragment节点的更新数据,其中Fragment节点包括至少一个Element节点;重置Fragment节点的全部Element节点关系;对比Fragment节点的原数据与更新数据,若Fragment节点存在可复用节点,则基于更新数据更新可复用节点的数据并将更新后的可复用节点插入 ...
【技术保护点】
1.一种DOM数据更新方法,其特征在于,所述方法包括:/n获取Fragment节点的更新数据,其中所述Fragment节点包括至少一个Element节点;/n重置所述Fragment节点的全部所述Element节点关系;/n对比所述Fragment节点的原数据与所述更新数据,若所述Fragment节点存在可复用节点,则基于所述更新数据更新所述可复用节点的数据并将更新后的所述可复用节点插入到所述Fragment节点中,其中所述可复用节点为所述原数据与所述更新数据中均存在的Element节点;/n存储更新后的Fragment节点的数据,作为下次更新的原数据;/n加载所述更新后的Fragment节点的数据。/n
【技术特征摘要】
1.一种DOM数据更新方法,其特征在于,所述方法包括:
获取Fragment节点的更新数据,其中所述Fragment节点包括至少一个Element节点;
重置所述Fragment节点的全部所述Element节点关系;
对比所述Fragment节点的原数据与所述更新数据,若所述Fragment节点存在可复用节点,则基于所述更新数据更新所述可复用节点的数据并将更新后的所述可复用节点插入到所述Fragment节点中,其中所述可复用节点为所述原数据与所述更新数据中均存在的Element节点;
存储更新后的Fragment节点的数据,作为下次更新的原数据;
加载所述更新后的Fragment节点的数据。
2.根据权利要求1所述的DOM数据更新方法,其特征在于,所述对比所述Fragment节点的原数据与所述更新数据,还包括:若所述Fragment节点存在新增节点,则基于所述更新数据生成所述新增节点并插入到所述Fragment节点中,其中所述新增节点为所述原数据中不存在且所述更新数据中存在的Element节点。
3.根据权利要求1或2所述的DOM数据更新方法,其特征在于,所述对比所述Fragment节点的原数据与所述更新数据,还包括:若所述Fragment节点存在弃用节点,则基于所述更新数据删除所述弃用节点,其中所述弃用节点为所述原数据中存在且所述更新数据中不存在的Element节点。
4.根据权利要求1所述的DOM数据更新方法,其特征在于,所述加载所述更新后的Fragment节点的数据,包括:若节点为Fragment节点,则过滤所述Fragment节点,将所述Fragment节点的全部子节点插入所述Fragment节点上级节点。
5.根据权利要求1所述的DOM数据更新方法,其特征在于,所述获取Fragment节点的更新数据,包括:基于触发的onReady事件,获取回调的所述Fragment节点的所述更新数据。
6.一种页面更新方法,其特征在于,所述方法包括:
触发页面的更新数据;
通过如权利要求1-5任一项所述的DOM数据更新方法,更新所述DOM数据;
基于更新后的所述DOM数据,渲染所述页面。
7.一种DOM数据更新装置,其特征在于,所述装置包括:
获取单元,用于获取Fragment节点的更新数据,其中所述Fragment节点包括至少一个Element节点;
...
【专利技术属性】
技术研发人员:董永清,孙良木,潘温,
申请(专利权)人:北京小米移动软件有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。