[发明专利]对象读取方法、装置和电子设备有效
申请号: | 202110531800.6 | 申请日: | 2021-05-14 |
公开(公告)号: | CN113254023B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 杨泽伟 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 钟扬飞 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 对象 读取 方法 装置 电子设备 | ||
本发明提供了一种对象读取方法、装置和电子设备,首先编译目标代码文件得到编译文件;响应于对象读取指令,基于对象读取指令确定需读取的目标对象的对象属性,如果对象属性包含多个,基于多个对象属性间的层级关系,从编译文件中依次读取对象属性;如果多个对象属性中,存在从编译文件中读取不到的属性,返回指定信息,停止读取该属性的后续对象属性。该方式在读取属性包含有多个层级关系的对象时,如果读不到某一属性,返回指定信息并跳出读取进程,避免因读取进程报错而产生的页面白屏;同时,相对于使用if‑else语句对属性进行多层判断赋值的方式,该方式中编译文件的代码更加简单,降低了代码的冗余度和维护难度,提高了代码开发效率。
技术领域
本发明涉及代码编译执行技术领域,尤其是涉及一种对象读取方法、装置和电子设备。
背景技术
在JavaScript中,前端请求接口通常会返回一份JSON格式的JavaScript对象,该对象通常包含多个层级的属性。由于该JavaScript对象的多层级结构的未知性可能引发对象读取错误,又由于JavaScript的执行栈是单线程模式,当一个代码片段中的JavaScript对象出现读取报错就会导致后续JavaScript代码都无法运行,造成页面功能大面积瘫痪,在用户角度来看就是页面白屏。页面白屏是一种非常不友好的用户体验,且会导致网站的跳出率急剧上升,可能再短时间内造成大量用户流失。
为了避免读取JavaScript对象的多层级属性而导致的页面白屏现象,相关技术中通常使用if-else语句对JavaScript对象的属性进行多层判断赋值,若判断某个属性已存在则继续进入下一个if-else语句,再次判断子属性是否存在,若存在则再次进入下一个if-else语句,否则停止执行其他if-else语句。但是多层判断赋值会让整体的JavaScript代码变得非常臃肿和难以维护,若JavaScript对象被修改可能需要重构全部或部分if-else语句,影响代码开发效率。
发明内容
本发明的目的在于提供一种对象读取方法、装置和电子设备,以避免读取JavaScript对象的多层级属性而导致的页面白屏现象。
第一方面,本发明提供了一种对象读取方法,该方法包括:对目标代码文件进行编译,得到编译文件;响应于对象读取指令,从对象读取指令中提取目标对象;确定目标对象的对象属性,如果对象属性包含多个,基于多个对象属性之间的层级关系,从编译文件中依次读取多个对象属性;如果多个对象属性中,存在从编译文件中读取不到的第一属性,返回指定信息,停止读取第一属性的后续对象属性。
在可选的实施方式中,上述对目标代码文件进行编译,得到编译文件的步骤,包括:从目标代码文件的代码语法结构中,确定对象属性包含有多个层级关系的目标节点;其中,该代码语法结构包括多个节点,每个节点包括目标代码文件中的一部分代码片段对应的对象的对象属性,以及每个对象属性之间的层级关系;基于目标节点中每个对象属性之间的层级关系,得到用于表征对象属性的读取顺序的属性数组;响应针对于属性数组的读取规则的插入操作,将读取规则与目标节点合并,得到最终的目标节点;其中,该读取规则包括:基于属性数组依次读取每个对象属性,当未读取到属性数组中的第二属性时,返回指定信息,停止读取第二属性的后续对象属性;将最终的目标节点替换为代码语法结构中的目标节点,得到替换后的代码语法结构,将替换后的代码结构转换为编译文件。
在可选的实施方式中,上述基于目标节点中每个对象属性之间的层级关系,得到用于表征对象属性的读取顺序的属性数组的步骤,包括:从目标节点中提取对象的各个对象属性,以及每个对象属性之间的层级关系;通过预设的分割函数或者正则表达式,基于每个对象属性之间的层级关系,得到用于表征属性读取顺序的链表结构;将链表结构组合成属性数组。
在可选的实施方式中,上述从目标节点中提取对象的各个对象属性,以及每个对象属性之间的层级关系的步骤,包括:根据预设的所述对象属性之间的链接方式,从目标节点中确定对象的各个对象属性,以及每个对象属性之间的层级关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110531800.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:智能交通软硬件生态系统构建方法
- 下一篇:一种儿童用品