[发明专利]实现浏览器脚本语言执行容错的方法及装置有效
申请号: | 201210593588.7 | 申请日: | 2012-12-31 |
公开(公告)号: | CN103019830A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 李宴儒 | 申请(专利权)人: | 深圳TCL新技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F11/07 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 518052 广东省深圳市南山区中*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 浏览器 脚本语言 执行 容错 方法 装置 | ||
技术领域
本发明涉及浏览器技术领域,特别涉及一种实现浏览器脚本语言执行容错的方法及装置。
背景技术
脚本语言是一种解释型语言(如JavaScript),一般以文本形式保存,其源代码在发往客户端运行之前不需要经过编译,而是将文本格式字符代码发送给浏览器由浏览器解释运行。
在脚本语言中,如果一条语句运行出现错误,那么下面的语句也无法继续运行。在用网页浏览器浏览网页时,通常出现浏览器提示网页错误而无法正常浏览使用的现象,这种现象大多数是由于浏览器对网页中脚本语言文件执行解析时出现错误导致的。对脚本语言文件执行解析时出现的错误包括较小、次要的语法错误以及严重的语法错误或者逻辑错误,其中较小或次要的语法错误是指出现错误的程序片段对网页的主要逻辑、主要功能不会产生重要影响(即该程序段的执行结果对整体程序影响不大或者没有影响)。因此为降低网页的出错率,需要在网页中出现较小或次要的脚本语言语法错误的情况下,仍然能够保证网页的正常浏览。
发明内容
本发明的主要目的在于提供一种实现浏览器脚本语言执行容错的方法,旨在防止网页中出现的较小或次要的脚本语言语法错误而影响网页的正常浏览。
为了实现发明目的,本发明提供一种实现浏览器脚本语言执行容错的方法,该实现浏览器脚本语言执行容错的方法包括以下步骤:
A,开始执行指令时,获取当前指令的源操作数,判断源操作数是否合法;若是,则执行步骤B,否则执行步骤E;
B,进行指令运算,并判断指令运算结束后是否存在异常;若是,则执行步骤C,否则执行步骤D;
C,将所述指令中未赋值的目标操作数赋值为空值;并执行步骤E;
D,将所述指令运算的结果赋值给目标操作数;并执行步骤E;
E,判断是否已经执行完所有的指令;若是,则结束本次浏览器脚本语言解析,否则将下一条指令设定为当前指令,并返回执行步骤A。
优选地,在执行所述步骤A之前还包括:
S60,将从服务器端下载含有脚本语言程序的文件解码为相应的脚本语言字符串;
S70,根据词法和语法分析解码后的脚本语言字符串,并生成字节码。
优选地,所述步骤C具体包括:
C1,判断所述指令中是否包含目标操作数;若是,则执行步骤C2,否则执行步骤E;
C2,判断所述目标操作数是否被赋值;若是,则执行步骤E,否则执行步骤C3;
C3,将所述目标操作数赋值为空值,并执行步骤E。
优选地,所述判断源操作数是否合法具体为:判断源操作数是否为空。
优选地,所述指令运算产生的异常为:源操作数对应的属性或方法未找到,或者源操作数的类型或范围不符合指令的要求。
本发明还提供一种实现浏览器脚本语言执行容错的装置,该实现浏览器脚本语言执行容错的装置包括:
第一判断模块,用于在开始执行指令时,获取当前指令的源操作数,判断源操作数是否合法;
第二判断模块,用于在第一判断模块判断所述源操作数合法时,进行指令运算,并判断指令运算结束后是否存在异常;
处理模块,用于在第二判断模块判断指令运算存在异常时,将所述指令中未赋值的目标操作数赋值为空值;在第二判断模块判断指令运算未存在异常时,将所述指令运算的结果赋值给目标操作数;
第三判断模块,用于在第一判断模块判断所述源操作数不合法或者处理模块赋值操作完成时,判断是否已经执行完所有的指令;若是,则结束本次浏览器脚本语言解析,否则将下一条指令设定为当前指令,并由第一判断模块继续执行获取当前指令的源操作数,判断源操作数是否合法的操作。
优选地,所述实现浏览器脚本语言执行容错的装置还包括:
解码模块,用于将从服务器端下载含有脚本语言程序的文件解码为相应的脚本语言字符串;
分析模块,用于根据词法和语法分析解码后的脚本语言字符串,并生成字节码。
优选地,所述处理模块包括:
第一判断单元,用于判断所述指令中是否包含目标操作数;
第二判断单元,用于在第一判断单元判断指令中包含目标操作数时,判断所述目标操作数是否被赋值;
处理单元,用于在第二判断单元判断所述目标操作数未被赋值时,将所述目标操作数赋值为空值,并由所述第三判断模块继续执行判断是否已经执行完所有的指令的操作。
优选地,所述第一判断模块用于判断源操作数是否为空。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳TCL新技术有限公司,未经深圳TCL新技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210593588.7/2.html,转载请声明来源钻瓜专利网。