本发明专利技术公开了一种实现浏览器脚本语言执行容错的方法及装置,所述实现浏览器脚本语言执行容错的方法包括以下步骤:A.开始执行指令时,获取当前指令的源操作数,判断源操作数是否合法;若是,则执行步骤B,否则执行步骤E;B.进行指令运算,并判断指令运算结束后是否存在异常;若是,则执行步骤C,否则执行步骤D;C.将所述指令中未赋值的目标操作数赋值为空值;并执行步骤E;D.将所述指令运算的结果赋值给目标操作数;并执行步骤E;E.判断是否已经执行完所有的指令;若是,则结束本次浏览器脚本语言解析,否则将下一条指令设定为当前指令,并返回执行步骤A。
【技术实现步骤摘要】
本专利技术涉及浏览器
,特别涉及一种实现浏览器脚本语言执行容错的方法及装置。
技术介绍
脚本语言是一种解释型语言(如JavaScript),一般以文本形式保存,其源代码在发往客户端运行之前不需要经过编译,而是将文本格式字符代码发送给浏览器由浏览器解释运行。在脚本语言中,如果一条语句运行出现错误,那么下面的语句也无法继续运行。在用网页浏览器浏览网页时,通常出现浏览器提示网页错误而无法正常浏览使用的现象,这种现象大多数是由于浏览器对网页中脚本语言文件执行解析时出现错误导致的。对脚本语言文件执行解析时出现的错误包括较小、次要的语法错误以及严重的语法错误或者逻辑错误,其中较小或次要的语法错误是指出现错误的程序片段对网页的主要逻辑、主要功能不会产生重要影响(即该程序段的执行结果对整体程序影响不大或者没有影响)。因此为降低网页的出错率,需要在网页中出现较小或次要的脚本语言语法错误的情况下,仍然能够保证网页的正常浏览。
技术实现思路
本专利技术的主要目的在于提供一种实现浏览器脚本语言执行容错的方法,g在防止网页中出现的较小或次要的脚本语言语法错误而影响网页的正常浏览。为了实现专利技术目的,本专利技术提供一种实现浏览器脚本语言执行容错的方法,该实现浏览器脚本语言执行容错的方法包括以下步骤A,开始执行指令吋,获取当前指令的源操作数,判断源操作数是否合法;若是,则执行步骤B,否则执行步骤E ;B,进行指令运算,并判断指令运算结束后是否存在异常;若是,则执行步骤C,否则执行步骤D ;C,将所述指令中未赋值的目标操作数赋值为空值;并执行步骤E ;D,将所述指令运算的结果赋值给目标操作数;并执行步骤E ;E,判断是否已经执行完所有的指令;若是,则结束本次浏览器脚本语言解析,否则将下一条指令设定为当前指令,并返回执行步骤A。优选地,在执行所述步骤A之前还包括S60,将从服务器端下载含有脚本语言程序的文件解码为相应的脚本语言字符串;S70,根据词法和语法分析解码后的脚本语言字符串,并生成字节码。优选地,所述步骤C具体包括Cl,判断所述指令中是否包含目标操作数;若是,则执行步骤C2,否则执行步骤E ;C2,判断所述目标操作数是否被赋值;若是,则执行步骤E,否则执行步骤C3 ;C3,将所述目标操作数赋值为空值,并执行步骤E。优选地,所述判断源操作数是否合法具体为判断源操作数是否为空。优选地,所述指令运算产生的异常为源操作数对应的属性或方法未找到,或者源操作数的类型或范围不符合指令的要求。本专利技术还提供一种实现浏览器脚本语言执行容错的装置,该实现浏览器脚本语言执行容错的装置包括第一判断模块,用于在开始执行指令时,获取当前指令的源操作数,判断源操作数是否合法;第二判断模块,用于在第一判断模块判断所述源操作数合法时,进行指令运算,并判断指令运算结束后是否存在异常;处理模块,用于在第二判断模块判断指令运算存在异常时,将所述指令中未赋值的目标操作数赋值为空值;在第二判断模块判断指令运算未存在异常时,将所述指令运算的结果赋值给目标操作数;第三判断模块,用于在第一判断模块判断所述源操作数不合法或者处理模块赋值操作完成时,判断是否已经执行完所有的指令;若是,则结束本次浏览器脚本语言解析,否则将下一条指令设定为当前指令,并由第一判断模块继续执行获取当前指令的源操作数,判断源操作数是否合法的操作。优选地,所述实现浏览器脚本语言执行容错的装置还包括解码模块,用于将从服务器端下载含有脚本语言程序的文件解码为相应的脚本语言字符串;分析模块,用于根据词法和语法分析解码后的脚本语言字符串,并生成字节码。优选地,所述处理模块包括第一判断単元,用于判断所述指令中是否包含目标操作数;第二判断単元,用于在第一判断単元判断指令中包含目标操作数时,判断所述目标操作数是否被赋值;处理单元,用于在第二判断単元判断所述目标操作数未被赋值时,将所述目标操作数赋值为空值,并由所述第三判断模块继续执行判断是否已经执行完所有的指令的操作。优选地,所述第一判断模块用于判断源操作数是否为空。优选地,所述指令运算产生的异常为源操作数对应的属性或方法未找到,或者源操作数的类型或范围不符合指令的要求。本专利技术通过获取指令的源操作数,首先判断该源操作数的合法性,并在源操作数不合法的情况下直接跳过当前指令直接进入下一条指令的执行,在源操作数合法的情况下,判断执行指令结束后是否存在异常,若存在异常,则将未赋值的目标操作数赋值为空值,其次抛出异常执行下一条指令;若不存在异常,则将指令运算后的结果赋值给目标操作数,其次执行下一条指令。因此本专利技术可有效防止浏览器解析网页中的脚本语言文件时出现的较小或次要的脚本语言语法错误而影响网页的正常浏览,从而提高了实用性。附图说明图1为本专利技术实现浏览器脚本语言执行容错的方法一实施例的流程示意图;图2为本专利技术实现浏览器脚本语言执行容错的方法另ー实施例的流程示意图;图3为本专利技术实现浏览器脚本语言执行容错的方法又一实施例的流程示意图;图4为本专利技术实现浏览器脚本语言执行容错的装置一实施例的结构示意图;图5为图4中处理模块的结构示意图。本专利技术目的的实现、功能特点及优点将结合实施例,參照附图做进ー步说明。具体实施例方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。參照图1,图1为本专利技术实现浏览器脚本语言执行容错的方法一实施例的流程示意图。本实施例提供的实现浏览器脚本语言执行容错的方法包括以下步骤步骤S10,开始执行指令吋,获取当前指令的源操作数,判断源操作数是否合法;若是,则执行步骤S20,否则执行步骤S50 ;本实施例中,在执行指令时,首先获取指令的源操作数,然后判断源操作数的合法性。具体地,本实施例中,可通过判断源操作数是否为空值,从而判断指令的源操作数是否合法。若源操作数为空值,则判定源操作数不合法;若源操作数不为空值,则判定源操作数合法。例如,可通过调用一空值判断函数判断源操作数的合法性。步骤S20,进行指令运算,并判断指令运算结束后是否存在异常;若是,则执行步骤S30,否则执行步骤S40 ;步骤S30,将所述指令中未赋值的目标操作数赋值为空值,并执行步骤S50 ;步骤S40,将所述指令运算的结果赋值给目标操作数,并执行步骤S50 ;本实施例中,在确定指令的源操作数合法后,将进行指令运算,若运算出现错误,则会生成对应的异常,该异常包含错误信息,并被保存至一全局变量中。然后通过调用ー异常检测函数查询异常信息,从而判定在进行指令运算的过程中是否出现错误。若存在异常,则将指令中未赋值的目标操作数赋值为空值;若不存在异常,则将指令运算的结果赋值给目标操作数。应当说明的是,本实施例中,上述指令运算产生的异常具体为在操作指令运算吋,未找到源操作数对应的属性或方法,或者源操作数的类型或范围不符合指令的要求。步骤S50,判断是否已经执行完所有的指令;若是,执行步骤S60,否则执行步骤S70 ;步骤S60,结束本次浏览器脚本语言解析;步骤S70,将下一条指令设定为当前指令,并返回执行步骤S10。当执行完上述步骤S30或S40或者在步骤SlO中判断源操作数本身不合法吋,则表示已经执行完一条指令,此时需将下一条指令设定为当前指令,再次执行当前指令。当所有的指令均执行完成后,才本文档来自技高网...
【技术保护点】
一种实现浏览器脚本语言执行容错的方法,其特征在于,包括以下步骤:A,开始执行指令时,获取当前指令的源操作数,判断源操作数是否合法;若是,则执行步骤B,否则执行步骤E;B,进行指令运算,并判断指令运算结束后是否存在异常;若是,则执行步骤C,否则执行步骤D;C,将所述指令中未赋值的目标操作数赋值为空值;并执行步骤E;D,将所述指令运算的结果赋值给目标操作数;并执行步骤E;E,判断是否已经执行完所有的指令;若是,则结束本次浏览器脚本语言解析,否则将下一条指令设定为当前指令,并返回执行步骤A。
【技术特征摘要】
1.一种实现浏览器脚本语言执行容错的方法,其特征在于,包括以下步骤 A,开始执行指令时,获取当前指令的源操作数,判断源操作数是否合法;若是,则执行步骤B,否则执行步骤E ; B,进行指令运算,并判断指令运算结束后是否存在异常;若是,则执行步骤C,否则执行步骤D ; C,将所述指令中未赋值的目标操作数赋值为空值;并执行步骤E ; D,将所述指令运算的结果赋值给目标操作数;并执行步骤E ; E,判断是否已经执行完所有的指令;若是,则结束本次浏览器脚本语言解析,否则将下一条指令设定为当前指令,并返回执行步骤A。2.如权利要求1所述的实现浏览器脚本语言执行容错的方法,其特征在于,在执行所述步骤A之前还包括 将从服务器端下载含有脚本语言程序的文件解码为相应的脚本语言字符串; 根据词法和语法分析解码后的脚本语言字符串,生成字节码。3.如权利要求1所述的实现浏览器脚本语言执行容错的方法,其特征在于,所述步骤C具体包括 Cl,判断所述指令中是否包含目标操作数;若是,则执行步骤C2,否则执行步骤E ; C2,判断所述目标操作数是否被赋值;若是,则执行步骤E,否则执行步骤C3 ; C3,将所述目标操作数赋值为空值,并执行步骤E。4.如权利要求1至3中任一项所述的实现浏览器脚本语言执行容错的方法,其特征在于,所述判断源操作数是否合法具体为判断源操作数是否为空。5.如权利要求1至3中任一项所述的实现浏览器脚本语言执行容错的方法,其特征在于,所述指令运算产生的异常为源操作数对应的属性或方法未找到,或者源操作数的类型或范围不符合指令的要求。6.一种实现浏览器脚本语言执行容错的装置,其特征在于,包括 第一判断模块,用于在开始执行指令时,获取当前指令的源操作数,判断源操作数是否合法;...
【专利技术属性】
技术研发人员:李宴儒,
申请(专利权)人:深圳TCL新技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。