1.一種瀏覽器腳本的更新方法,其特征在于,包括:
瀏覽器以Ajax請求的方式獲取腳本;
將所述腳本按照Ajax請求的順序以動態(tài)解釋的方式逐個(gè)動態(tài)執(zhí)行;
將執(zhí)行后的腳本的地址、版本號、內(nèi)容和內(nèi)容的散列以地址為索引存儲至本地存儲中;
瀏覽器請求獲取腳本時(shí),若請求的腳本的地址與本地存儲中的腳本的地址相同、且請求的腳本的版本號大于所述本地存儲中的腳本的版本號,則依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務(wù)器中獲取所述腳本的增量包;
將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新。
2.根據(jù)權(quán)利要求1所述的瀏覽器腳本的更新方法,其特征在于,依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務(wù)器中獲取所述腳本的增量包,包括:
服務(wù)器依據(jù)所述請求中的腳本的地址獲取與所述內(nèi)容的散列對應(yīng)的腳本;
服務(wù)器通過delta算法對所述本地存儲中的腳本和獲取的與所述內(nèi)容的散列對應(yīng)的腳本進(jìn)行處理,生成增量包;
服務(wù)器將所述增量包發(fā)送至瀏覽器。
3.根據(jù)權(quán)利要求2所述的瀏覽器腳本的更新方法,其特征在于,將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新,包括:
瀏覽器將所述增量包與所述本地存儲中的腳本通過delta算法進(jìn)行合并,生成最新版本的腳本文件。
4.根據(jù)權(quán)利要求1所述的瀏覽器腳本的更新方法,其特征在于,瀏覽器請求獲取腳本時(shí),若存在與請求的腳本地址相同的本地存儲中的腳本、且請求的腳本的版本號小于或等于所述本地存儲中的腳本的版本號,則獲取所述本地存儲中的腳本。
5.根據(jù)權(quán)利要求1所述的瀏覽器腳本的更新方法,其特征在于,將所述腳本按照Ajax請求的順序以動態(tài)解析的方式逐個(gè)動態(tài)執(zhí)行;將執(zhí)行后的腳本的地址、版本號、內(nèi)容、內(nèi)容的散列以地址為索引存儲至本地存儲中,包括:
調(diào)用eval函數(shù)對所述腳本進(jìn)行動態(tài)解釋;
若所述腳本正確執(zhí)行,則將所述腳本存儲至本地存儲中;
若所述腳本執(zhí)行異常,則將所述腳本采用base64算法進(jìn)行編碼后存儲至本地存儲中。
6.一種瀏覽器腳本的更新系統(tǒng),其特征在于,包括:
腳本獲取模塊,用于瀏覽器以Ajax請求的方式獲取腳本;
執(zhí)行模塊,用于將所述腳本按照Ajax請求的順序以動態(tài)解釋的方式逐個(gè)動態(tài)執(zhí)行;
存儲模塊,用于將執(zhí)行后的腳本的地址、版本號、內(nèi)容和內(nèi)容的散列以地址為索引存儲至本地存儲中;
增量包獲取模塊,用于瀏覽器請求獲取腳本時(shí),若請求的腳本的地址與本地存儲中的腳本的地址相同、且請求的腳本的版本號大于所述本地存儲中的腳本的版本號,則依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務(wù)器中獲取所述腳本的增量包;
更新模塊,用于將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新。
7.根據(jù)權(quán)利要求6所述的瀏覽器腳本的更新系統(tǒng),其特征在于,所述增量包獲取模塊,包括:
第一獲取模塊,用于服務(wù)器依據(jù)所述請求中的腳本的地址獲取與所述內(nèi)容的散列對應(yīng)的腳本;
第一計(jì)算模塊,用于服務(wù)器通過delta算法對所述本地存儲中的腳本和獲取的與所述內(nèi)容的散列對應(yīng)的腳本進(jìn)行處理,生成增量包;
發(fā)送模塊,用于服務(wù)器將所述增量包發(fā)送至瀏覽器。
8.根據(jù)權(quán)利要求7所述的瀏覽器腳本的更新系統(tǒng),其特征在于,所述更新模塊包括:
第二計(jì)算模塊,用于瀏覽器將所述增量包與所述本地存儲中的腳本通過delta算法進(jìn)行合并,生成最新版本的腳本文件。
9.根據(jù)權(quán)利要求6所述的瀏覽器腳本的更新系統(tǒng),其特征在于,瀏覽器請求獲取腳本時(shí),若存在與請求的腳本地址相同的本地存儲中的腳本、且請求的腳本的版本號小于或等于所述本地存儲中的腳本的版本號,則獲取所述本地存儲中的腳本。
10.根據(jù)權(quán)利要求6所述的瀏覽器腳本的更新系統(tǒng),其特征在于,所述執(zhí)行模塊用于調(diào)用eval函數(shù)對所述腳本進(jìn)行動態(tài)解釋;所述存儲模塊用于若所述腳本正確執(zhí)行,則將所述腳本存儲至本地存儲中;若所述腳本執(zhí)行異常,則將所述腳本采用base64算法進(jìn)行編碼后存儲至本地存儲中。