本發(fā)明專利技術(shù)公開(kāi)了一種實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法及裝置,所述實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法包括以下步驟:A.開(kāi)始執(zhí)行指令時(shí),獲取當(dāng)前指令的源操作數(shù),判斷源操作數(shù)是否合法;若是,則執(zhí)行步驟B,否則執(zhí)行步驟E;B.進(jìn)行指令運(yùn)算,并判斷指令運(yùn)算結(jié)束后是否存在異常;若是,則執(zhí)行步驟C,否則執(zhí)行步驟D;C.將所述指令中未賦值的目標(biāo)操作數(shù)賦值為空值;并執(zhí)行步驟E;D.將所述指令運(yùn)算的結(jié)果賦值給目標(biāo)操作數(shù);并執(zhí)行步驟E;E.判斷是否已經(jīng)執(zhí)行完所有的指令;若是,則結(jié)束本次瀏覽器腳本語(yǔ)言解析,否則將下一條指令設(shè)定為當(dāng)前指令,并返回執(zhí)行步驟A。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及瀏覽器
,特別涉及一種實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法及裝置。
技術(shù)介紹
腳本語(yǔ)言是一種解釋型語(yǔ)言(如JavaScript),一般以文本形式保存,其源代碼在發(fā)往客戶端運(yùn)行之前不需要經(jīng)過(guò)編譯,而是將文本格式字符代碼發(fā)送給瀏覽器由瀏覽器解釋運(yùn)行。在腳本語(yǔ)言中,如果一條語(yǔ)句運(yùn)行出現(xiàn)錯(cuò)誤,那么下面的語(yǔ)句也無(wú)法繼續(xù)運(yùn)行。在用網(wǎng)頁(yè)瀏覽器瀏覽網(wǎng)頁(yè)時(shí),通常出現(xiàn)瀏覽器提示網(wǎng)頁(yè)錯(cuò)誤而無(wú)法正常瀏覽使用的現(xiàn)象,這種現(xiàn)象大多數(shù)是由于瀏覽器對(duì)網(wǎng)頁(yè)中腳本語(yǔ)言文件執(zhí)行解析時(shí)出現(xiàn)錯(cuò)誤導(dǎo)致的。對(duì)腳本語(yǔ)言文件執(zhí)行解析時(shí)出現(xiàn)的錯(cuò)誤包括較小、次要的語(yǔ)法錯(cuò)誤以及嚴(yán)重的語(yǔ)法錯(cuò)誤或者邏輯錯(cuò)誤,其中較小或次要的語(yǔ)法錯(cuò)誤是指出現(xiàn)錯(cuò)誤的程序片段對(duì)網(wǎng)頁(yè)的主要邏輯、主要功能不會(huì)產(chǎn)生重要影響(即該程序段的執(zhí)行結(jié)果對(duì)整體程序影響不大或者沒(méi)有影響)。因此為降低網(wǎng)頁(yè)的出錯(cuò)率,需要在網(wǎng)頁(yè)中出現(xiàn)較小或次要的腳本語(yǔ)言語(yǔ)法錯(cuò)誤的情況下,仍然能夠保證網(wǎng)頁(yè)的正常瀏覽。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)的主要目的在于提供一種實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法,g在防止網(wǎng)頁(yè)中出現(xiàn)的較小或次要的腳本語(yǔ)言語(yǔ)法錯(cuò)誤而影響網(wǎng)頁(yè)的正常瀏覽。為了實(shí)現(xiàn)專利技術(shù)目的,本專利技術(shù)提供一種實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法,該實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法包括以下步驟A,開(kāi)始執(zhí)行指令吋,獲取當(dāng)前指令的源操作數(shù),判斷源操作數(shù)是否合法;若是,則執(zhí)行步驟B,否則執(zhí)行步驟E ;B,進(jìn)行指令運(yùn)算,并判斷指令運(yùn)算結(jié)束后是否存在異常;若是,則執(zhí)行步驟C,否則執(zhí)行步驟D ;C,將所述指令中未賦值的目標(biāo)操作數(shù)賦值為空值;并執(zhí)行步驟E ;D,將所述指令運(yùn)算的結(jié)果賦值給目標(biāo)操作數(shù);并執(zhí)行步驟E ;E,判斷是否已經(jīng)執(zhí)行完所有的指令;若是,則結(jié)束本次瀏覽器腳本語(yǔ)言解析,否則將下一條指令設(shè)定為當(dāng)前指令,并返回執(zhí)行步驟A。優(yōu)選地,在執(zhí)行所述步驟A之前還包括S60,將從服務(wù)器端下載含有腳本語(yǔ)言程序的文件解碼為相應(yīng)的腳本語(yǔ)言字符串;S70,根據(jù)詞法和語(yǔ)法分析解碼后的腳本語(yǔ)言字符串,并生成字節(jié)碼。優(yōu)選地,所述步驟C具體包括Cl,判斷所述指令中是否包含目標(biāo)操作數(shù);若是,則執(zhí)行步驟C2,否則執(zhí)行步驟E ;C2,判斷所述目標(biāo)操作數(shù)是否被賦值;若是,則執(zhí)行步驟E,否則執(zhí)行步驟C3 ;C3,將所述目標(biāo)操作數(shù)賦值為空值,并執(zhí)行步驟E。優(yōu)選地,所述判斷源操作數(shù)是否合法具體為判斷源操作數(shù)是否為空。優(yōu)選地,所述指令運(yùn)算產(chǎn)生的異常為源操作數(shù)對(duì)應(yīng)的屬性或方法未找到,或者源操作數(shù)的類型或范圍不符合指令的要求。本專利技術(shù)還提供一種實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的裝置,該實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的裝置包括第一判斷模塊,用于在開(kāi)始執(zhí)行指令時(shí),獲取當(dāng)前指令的源操作數(shù),判斷源操作數(shù)是否合法;第二判斷模塊,用于在第一判斷模塊判斷所述源操作數(shù)合法時(shí),進(jìn)行指令運(yùn)算,并判斷指令運(yùn)算結(jié)束后是否存在異常;處理模塊,用于在第二判斷模塊判斷指令運(yùn)算存在異常時(shí),將所述指令中未賦值的目標(biāo)操作數(shù)賦值為空值;在第二判斷模塊判斷指令運(yùn)算未存在異常時(shí),將所述指令運(yùn)算的結(jié)果賦值給目標(biāo)操作數(shù);第三判斷模塊,用于在第一判斷模塊判斷所述源操作數(shù)不合法或者處理模塊賦值操作完成時(shí),判斷是否已經(jīng)執(zhí)行完所有的指令;若是,則結(jié)束本次瀏覽器腳本語(yǔ)言解析,否則將下一條指令設(shè)定為當(dāng)前指令,并由第一判斷模塊繼續(xù)執(zhí)行獲取當(dāng)前指令的源操作數(shù),判斷源操作數(shù)是否合法的操作。優(yōu)選地,所述實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的裝置還包括解碼模塊,用于將從服務(wù)器端下載含有腳本語(yǔ)言程序的文件解碼為相應(yīng)的腳本語(yǔ)言字符串;分析模塊,用于根據(jù)詞法和語(yǔ)法分析解碼后的腳本語(yǔ)言字符串,并生成字節(jié)碼。優(yōu)選地,所述處理模塊包括第一判斷単元,用于判斷所述指令中是否包含目標(biāo)操作數(shù);第二判斷単元,用于在第一判斷単元判斷指令中包含目標(biāo)操作數(shù)時(shí),判斷所述目標(biāo)操作數(shù)是否被賦值;處理單元,用于在第二判斷単元判斷所述目標(biāo)操作數(shù)未被賦值時(shí),將所述目標(biāo)操作數(shù)賦值為空值,并由所述第三判斷模塊繼續(xù)執(zhí)行判斷是否已經(jīng)執(zhí)行完所有的指令的操作。優(yōu)選地,所述第一判斷模塊用于判斷源操作數(shù)是否為空。優(yōu)選地,所述指令運(yùn)算產(chǎn)生的異常為源操作數(shù)對(duì)應(yīng)的屬性或方法未找到,或者源操作數(shù)的類型或范圍不符合指令的要求。本專利技術(shù)通過(guò)獲取指令的源操作數(shù),首先判斷該源操作數(shù)的合法性,并在源操作數(shù)不合法的情況下直接跳過(guò)當(dāng)前指令直接進(jìn)入下一條指令的執(zhí)行,在源操作數(shù)合法的情況下,判斷執(zhí)行指令結(jié)束后是否存在異常,若存在異常,則將未賦值的目標(biāo)操作數(shù)賦值為空值,其次拋出異常執(zhí)行下一條指令;若不存在異常,則將指令運(yùn)算后的結(jié)果賦值給目標(biāo)操作數(shù),其次執(zhí)行下一條指令。因此本專利技術(shù)可有效防止瀏覽器解析網(wǎng)頁(yè)中的腳本語(yǔ)言文件時(shí)出現(xiàn)的較小或次要的腳本語(yǔ)言語(yǔ)法錯(cuò)誤而影響網(wǎng)頁(yè)的正常瀏覽,從而提高了實(shí)用性。附圖說(shuō)明圖1為本專利技術(shù)實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法一實(shí)施例的流程示意圖;圖2為本專利技術(shù)實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法另ー實(shí)施例的流程示意圖;圖3為本專利技術(shù)實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法又一實(shí)施例的流程示意圖;圖4為本專利技術(shù)實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的裝置一實(shí)施例的結(jié)構(gòu)示意圖;圖5為圖4中處理模塊的結(jié)構(gòu)示意圖。本專利技術(shù)目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)ー步說(shuō)明。具體實(shí)施例方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本專利技術(shù),并不用于限定本專利技術(shù)。參照?qǐng)D1,圖1為本專利技術(shù)實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法一實(shí)施例的流程示意圖。本實(shí)施例提供的實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法包括以下步驟步驟S10,開(kāi)始執(zhí)行指令吋,獲取當(dāng)前指令的源操作數(shù),判斷源操作數(shù)是否合法;若是,則執(zhí)行步驟S20,否則執(zhí)行步驟S50 ;本實(shí)施例中,在執(zhí)行指令時(shí),首先獲取指令的源操作數(shù),然后判斷源操作數(shù)的合法性。具體地,本實(shí)施例中,可通過(guò)判斷源操作數(shù)是否為空值,從而判斷指令的源操作數(shù)是否合法。若源操作數(shù)為空值,則判定源操作數(shù)不合法;若源操作數(shù)不為空值,則判定源操作數(shù)合法。例如,可通過(guò)調(diào)用一空值判斷函數(shù)判斷源操作數(shù)的合法性。步驟S20,進(jìn)行指令運(yùn)算,并判斷指令運(yùn)算結(jié)束后是否存在異常;若是,則執(zhí)行步驟S30,否則執(zhí)行步驟S40 ;步驟S30,將所述指令中未賦值的目標(biāo)操作數(shù)賦值為空值,并執(zhí)行步驟S50 ;步驟S40,將所述指令運(yùn)算的結(jié)果賦值給目標(biāo)操作數(shù),并執(zhí)行步驟S50 ;本實(shí)施例中,在確定指令的源操作數(shù)合法后,將進(jìn)行指令運(yùn)算,若運(yùn)算出現(xiàn)錯(cuò)誤,則會(huì)生成對(duì)應(yīng)的異常,該異常包含錯(cuò)誤信息,并被保存至一全局變量中。然后通過(guò)調(diào)用ー異常檢測(cè)函數(shù)查詢異常信息,從而判定在進(jìn)行指令運(yùn)算的過(guò)程中是否出現(xiàn)錯(cuò)誤。若存在異常,則將指令中未賦值的目標(biāo)操作數(shù)賦值為空值;若不存在異常,則將指令運(yùn)算的結(jié)果賦值給目標(biāo)操作數(shù)。應(yīng)當(dāng)說(shuō)明的是,本實(shí)施例中,上述指令運(yùn)算產(chǎn)生的異常具體為在操作指令運(yùn)算吋,未找到源操作數(shù)對(duì)應(yīng)的屬性或方法,或者源操作數(shù)的類型或范圍不符合指令的要求。步驟S50,判斷是否已經(jīng)執(zhí)行完所有的指令;若是,執(zhí)行步驟S60,否則執(zhí)行步驟S70 ;步驟S60,結(jié)束本次瀏覽器腳本語(yǔ)言解析;步驟S70,將下一條指令設(shè)定為當(dāng)前指令,并返回執(zhí)行步驟S10。當(dāng)執(zhí)行完上述步驟S30或S40或者在步驟SlO中判斷源操作數(shù)本身不合法吋,則表示已經(jīng)執(zhí)行完一條指令,此時(shí)需將下一條指令設(shè)定為當(dāng)前指令,再次執(zhí)行當(dāng)前指令。當(dāng)所有的指令均執(zhí)行完成后,才本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法,其特征在于,包括以下步驟:A,開(kāi)始執(zhí)行指令時(shí),獲取當(dāng)前指令的源操作數(shù),判斷源操作數(shù)是否合法;若是,則執(zhí)行步驟B,否則執(zhí)行步驟E;B,進(jìn)行指令運(yùn)算,并判斷指令運(yùn)算結(jié)束后是否存在異常;若是,則執(zhí)行步驟C,否則執(zhí)行步驟D;C,將所述指令中未賦值的目標(biāo)操作數(shù)賦值為空值;并執(zhí)行步驟E;D,將所述指令運(yùn)算的結(jié)果賦值給目標(biāo)操作數(shù);并執(zhí)行步驟E;E,判斷是否已經(jīng)執(zhí)行完所有的指令;若是,則結(jié)束本次瀏覽器腳本語(yǔ)言解析,否則將下一條指令設(shè)定為當(dāng)前指令,并返回執(zhí)行步驟A。
【技術(shù)特征摘要】
1.一種實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法,其特征在于,包括以下步驟 A,開(kāi)始執(zhí)行指令時(shí),獲取當(dāng)前指令的源操作數(shù),判斷源操作數(shù)是否合法;若是,則執(zhí)行步驟B,否則執(zhí)行步驟E ; B,進(jìn)行指令運(yùn)算,并判斷指令運(yùn)算結(jié)束后是否存在異常;若是,則執(zhí)行步驟C,否則執(zhí)行步驟D ; C,將所述指令中未賦值的目標(biāo)操作數(shù)賦值為空值;并執(zhí)行步驟E ; D,將所述指令運(yùn)算的結(jié)果賦值給目標(biāo)操作數(shù);并執(zhí)行步驟E ; E,判斷是否已經(jīng)執(zhí)行完所有的指令;若是,則結(jié)束本次瀏覽器腳本語(yǔ)言解析,否則將下一條指令設(shè)定為當(dāng)前指令,并返回執(zhí)行步驟A。2.如權(quán)利要求1所述的實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法,其特征在于,在執(zhí)行所述步驟A之前還包括 將從服務(wù)器端下載含有腳本語(yǔ)言程序的文件解碼為相應(yīng)的腳本語(yǔ)言字符串; 根據(jù)詞法和語(yǔ)法分析解碼后的腳本語(yǔ)言字符串,生成字節(jié)碼。3.如權(quán)利要求1所述的實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法,其特征在于,所述步驟C具體包括 Cl,判斷所述指令中是否包含目標(biāo)操作數(shù);若是,則執(zhí)行步驟C2,否則執(zhí)行步驟E ; C2,判斷所述目標(biāo)操作數(shù)是否被賦值;若是,則執(zhí)行步驟E,否則執(zhí)行步驟C3 ; C3,將所述目標(biāo)操作數(shù)賦值為空值,并執(zhí)行步驟E。4.如權(quán)利要求1至3中任一項(xiàng)所述的實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法,其特征在于,所述判斷源操作數(shù)是否合法具體為判斷源操作數(shù)是否為空。5.如權(quán)利要求1至3中任一項(xiàng)所述的實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的方法,其特征在于,所述指令運(yùn)算產(chǎn)生的異常為源操作數(shù)對(duì)應(yīng)的屬性或方法未找到,或者源操作數(shù)的類型或范圍不符合指令的要求。6.一種實(shí)現(xiàn)瀏覽器腳本語(yǔ)言執(zhí)行容錯(cuò)的裝置,其特征在于,包括 第一判斷模塊,用于在開(kāi)始執(zhí)行指令時(shí),獲取當(dāng)前指令的源操作數(shù),判斷源操作數(shù)是否合法;...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:李宴儒,
申請(qǐng)(專利權(quán))人:深圳TCL新技術(shù)有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。