亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

瀏覽器腳本的更新方法及系統(tǒng)與流程

文檔序號:12362888閱讀:938來源:國知局
瀏覽器腳本的更新方法及系統(tǒng)與流程

本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種瀏覽器腳本的更新方法及系統(tǒng)。



背景技術(shù):

目前瀏覽器腳本緩存通常都是采用腳本標簽標記要加載的腳本,瀏覽器再根據(jù)標簽中的腳本地址對腳本進行加載。腳本更新則需要下載整個新版本的腳本文件進行更新。

例如,公開號為CN 103823694 A的中國專利提供了一種腳本文件的更新方法,當檢測出腳本文件有修改或更新時,實時將最新的腳本文件解析成語法樹,并將解析后的語法樹保存在語法樹緩存區(qū)中,即完成了腳本文件的實時更新,同時瀏覽器也可實時應用到最新的腳本文件對應的語法樹。

上述方法提高了用戶實時瀏覽的效率,從而增強了用戶體驗。但是緩存的是整個腳本文件的語法樹,下載時占用的帶寬較大,非常浪費流量。



技術(shù)實現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是:提供一種瀏覽器腳本的更新方法及系統(tǒng),能夠減少腳本更新時占用的帶寬,提高更新速度。

為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:

一種瀏覽器腳本的更新方法,包括:

瀏覽器以Ajax請求的方式獲取腳本;

將所述腳本按照Ajax請求的順序以動態(tài)解釋的方式逐個動態(tài)執(zhí)行;

將執(zhí)行后的腳本的地址、版本號、內(nèi)容和內(nèi)容的散列以地址為索引存儲至本地存儲中;

瀏覽器請求獲取腳本時,若請求的腳本的地址與本地存儲中的腳本的地址相同、且請求的腳本的版本號大于所述本地存儲中的腳本的版本號,則依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務器中獲取所述腳本的增量包;

將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新。

本發(fā)明提供的另一個技術(shù)方案為:

一種瀏覽器腳本的更新系統(tǒng),包括:

腳本獲取模塊,用于瀏覽器以Ajax請求的方式獲取腳本;

執(zhí)行模塊,用于將所述腳本按照Ajax請求的順序以動態(tài)解釋的方式逐個動態(tài)執(zhí)行;

存儲模塊,用于將執(zhí)行后的腳本的地址、版本號、內(nèi)容和內(nèi)容的散列以地址為索引存儲至本地存儲中;

增量包獲取模塊,用于瀏覽器請求獲取腳本時,若請求的腳本的地址與本地存儲中的腳本的地址相同、且請求的腳本的版本號大于所述本地存儲中的腳本的版本號,則依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務器中獲取所述腳本的增量包;

更新模塊,用于將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新。

本發(fā)明的有益效果在于:本發(fā)明以Ajax請求的方式獲取腳本,能夠?qū)⒛_本存儲到本地,每次請求獲取腳本時先判斷本地存儲中是否存在需要的腳本,當本地存儲中存在需要的腳本,且版本低于需求的版本時,通過增量更新的方式更新腳本,區(qū)別于現(xiàn)有技術(shù)中使用<script>標簽標記要加載的腳本,瀏覽器再根據(jù)標簽中的腳本地址對腳本進行加載的方法,具有本地存儲中已經(jīng)存在的腳本需要更新時,不需要重新下載整個腳本,減少了帶寬占用,節(jié)省了流量。

附圖說明

圖1為本發(fā)明實施例的瀏覽器腳本的更新方法的流程圖;

圖2為本發(fā)明實施例的瀏覽器腳本的更新系統(tǒng)的結(jié)構(gòu)示意圖;

圖3為本發(fā)明實施例二的瀏覽器腳本的更新系統(tǒng)的結(jié)構(gòu)示意圖。

標號說明:

1、腳本獲取模塊;2、執(zhí)行模塊;3、存儲模塊;4、增量包獲取模塊;41、第一獲取模塊;42、第一計算模塊;5、更新模塊;51、第二計算模塊。

具體實施方式

為詳細說明本發(fā)明的技術(shù)內(nèi)容、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附圖予以說明。

本發(fā)明最關(guān)鍵的構(gòu)思在于:以Ajax請求的方式獲取腳本,腳本采用增量更新的方式進行更新。

本發(fā)明涉及的技術(shù)術(shù)語解釋:

請參照圖1,本發(fā)明提供:

一種瀏覽器腳本的更新方法,包括:

瀏覽器以Ajax請求的方式獲取腳本;

將所述腳本按照Ajax請求的順序以動態(tài)解釋的方式逐個動態(tài)執(zhí)行;

將執(zhí)行后的腳本的地址、版本號、內(nèi)容和內(nèi)容的散列以地址為索引存儲至本地存儲中;

瀏覽器請求獲取腳本時,若請求的腳本的地址與本地存儲中的腳本的地址相同、且請求的腳本的版本號大于所述本地存儲中的腳本的版本號,則依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務器中獲取所述腳本的增量包;

將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新。

從上述描述可知,本發(fā)明瀏覽器腳本的更新方法的有益效果在于:以Ajax請求的方式獲取腳本,并采用增量更新的方式對本地存儲中的腳本進行更新,節(jié)省了帶寬資源。

進一步的,依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務器中獲取所述腳本的增量包,包括:

服務器依據(jù)所述請求中的腳本的地址獲取與所述內(nèi)容的散列對應的腳本;

服務器通過delta算法對所述本地存儲中的腳本和獲取的與所述內(nèi)容的散列對應的腳本進行處理,生成增量包;

服務器將所述增量包發(fā)送至瀏覽器。

從上述描述可知,服務器根據(jù)瀏覽器發(fā)送的請求獲取最新版本的腳本,并將該腳本與本地存儲中的腳本進行計算生成增量包,再發(fā)送至瀏覽器,由于增量包要遠小于整個腳本,因此大大節(jié)省了帶寬資源。

進一步的,將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新,包括:

瀏覽器將所述增量包與所述本地存儲中的腳本通過delta算法進行合并,生成最新版本的腳本文件。

從上述描述可知,由于瀏覽器從服務器獲取的是增量包,因此需要將增量包與本地腳本進行計算生成最新版本的腳本文件。具體計算可選擇不同算法,只要服務器和瀏覽器的計算對應即可。

進一步的,瀏覽器請求獲取腳本時,若存在與請求的腳本地址相同的本地存儲中的腳本、且請求的腳本的版本號小于或等于所述本地存儲中的腳本的版本號,則獲取所述本地存儲中的腳本。

從上述描述可知,瀏覽器請求的腳本的地址在本地存儲中已經(jīng)存在,且版本號也相同,說明請求的腳本無需更新,直接從本地存儲中獲取即可,不需要再進行下載。

進一步的,將所述腳本按照Ajax請求的順序以動態(tài)解析的方式逐個動態(tài)執(zhí)行;將執(zhí)行后的腳本的地址、版本號、內(nèi)容、內(nèi)容的散列以地址為索引存儲至本地存儲中,包括:

調(diào)用eval函數(shù)對所述腳本進行動態(tài)解釋;

若所述腳本正確執(zhí)行,則將所述腳本存儲至本地存儲中;

若所述腳本執(zhí)行異常,則將所述腳本采用base64算法進行編碼后存儲至本地存儲中。

從上述描述可知,腳本執(zhí)行的方式是通過eval函數(shù)對腳本進行動態(tài)解釋,也可采用其他能夠?qū)崿F(xiàn)相同效果的方法,對于執(zhí)行成功的腳本,將其直接存儲至本地,而對于執(zhí)行失敗的腳本則將其編碼后再存儲,減少數(shù)據(jù)量。

請參照圖2,本發(fā)明的另一個技術(shù)方案為:

一種瀏覽器腳本的更新系統(tǒng),包括:

腳本獲取模塊1,用于瀏覽器以Ajax請求的方式獲取腳本;

執(zhí)行模塊2,用于將所述腳本按照Ajax請求的順序以動態(tài)解釋的方式逐個動態(tài)執(zhí)行;

存儲模塊3,用于將執(zhí)行后的腳本的地址、版本號、內(nèi)容和內(nèi)容的散列以地址為索引存儲至本地存儲中;

增量包獲取模塊4,用于瀏覽器請求獲取腳本時,若請求的腳本的地址與本地存儲中的腳本的地址相同、且請求的腳本的版本號大于所述本地存儲中的腳本的版本號,則依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務器中獲取所述腳本的增量包;

更新模塊5,用于將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新。

進一步的,所述增量包獲取模塊4,包括:

第一獲取模塊41,用于服務器依據(jù)所述請求中的腳本的地址獲取與所述內(nèi)容的散列對應的腳本;

第一計算模塊42,用于服務器通過delta算法對所述本地存儲中的腳本和獲取的與所述內(nèi)容的散列對應的腳本進行處理,生成增量包;

發(fā)送模塊43,用于服務器將所述增量包發(fā)送至瀏覽器。

從上述描述可知,服務器通過第一獲取模塊獲取對應請求的最新版本的腳本,再通過第一計算模塊計算出增量包,并經(jīng)發(fā)送模塊發(fā)送至瀏覽器。由于發(fā)送模塊最終發(fā)送的是增量包,要比腳本小很多,極大的節(jié)省了流量。

進一步的,所述更新模塊5包括:

第二計算模塊51,用于瀏覽器將所述增量包與所述本地存儲中的腳本通過delta算法進行合并,生成最新版本的腳本文件。

從上述描述可知,瀏覽器通過第二計算模塊對增量包和本地腳本計算后生成新的腳本文件,完成更新。

進一步的,瀏覽器請求獲取腳本時,若存在與請求的腳本地址相同的本地存儲中的腳本、且請求的腳本的版本號小于或等于所述本地存儲中的腳本的版本號,則獲取所述本地存儲中的腳本。

進一步的,所述執(zhí)行模塊2用于調(diào)用eval函數(shù)對所述腳本進行動態(tài)解釋;所述存儲模塊3用于若所述腳本正確執(zhí)行,則將所述腳本存儲至本地存儲中;若所述腳本執(zhí)行異常,則將所述腳本采用base64算法進行編碼后存儲至本地存儲中。

從上述描述可知,本方案不僅限于上述eval函數(shù)、base64算法,還可使用現(xiàn)有技術(shù)中能夠?qū)崿F(xiàn)相同效果的任何方式。

本發(fā)明的實施例一為:

一種瀏覽器腳本的更新方法,包括:

瀏覽器加載頁面時,以Ajax的方式向服務器發(fā)送獲取腳本的請求;并依據(jù)該請求獲取腳本;所述請求包括腳本的地址、版本號以及內(nèi)容的散列;

將上述所述腳本按照Ajax請求的順序以動態(tài)解釋的方式逐個動態(tài)執(zhí)行;

將執(zhí)行后的腳本的地址、版本號、內(nèi)容和內(nèi)容的散列以地址為索引存儲至本地存儲中;具體的,調(diào)用eval函數(shù)對所述腳本進行動態(tài)解釋;若所述腳本正確執(zhí)行,則將所述腳本存儲至本地存儲中;若所述腳本執(zhí)行異常,則將所述腳本采用base64算法進行編碼后存儲至本地存儲中;

瀏覽器每次請求獲取腳本時,先判斷請求的腳本和本地存儲中的腳本的差異;若請求的腳本的地址與本地存儲中的腳本的地址相同、且請求的腳本的版本號大于所述本地存儲中的腳本的版本號,則向服務器發(fā)送獲取腳本的請求至的服務器;服務器依據(jù)所述請求中的腳本的地址獲取與所述內(nèi)容的散列對應最新版本的腳本;服務器通過delta算法對所述本地存儲中的腳本和獲取的與所述內(nèi)容的散列對應的腳本進行處理,生成增量包;服務器將所述增量包發(fā)送至瀏覽器;

瀏覽器接收到增量包后,通過delta算法將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,生成最新版本的腳本文件,完成瀏覽器腳本的更新;

若存在與請求的腳本地址相同的本地存儲中的腳本、且請求的腳本的版本號小于或等于所述本地存儲中的腳本的版本號,則獲取所述本地存儲中的腳本。

請參照圖3,本發(fā)明的實施例二為:

一種與上述實施例一的瀏覽器腳本的更新方法對應的系統(tǒng),包括:

腳本獲取模塊1,用于瀏覽器以Ajax請求的方式獲取腳本;

執(zhí)行模塊2,用于將所述腳本按照Ajax請求的順序以動態(tài)解釋的方式逐個動態(tài)執(zhí)行;

存儲模塊3,用于將執(zhí)行后的腳本的地址、版本號、內(nèi)容和內(nèi)容的散列以地址為索引存儲至本地存儲中;具體的,所述執(zhí)行模塊2用于調(diào)用eval函數(shù)對所述腳本進行動態(tài)解釋;所述存儲模塊3用于若所述腳本正確執(zhí)行,則將所述腳本存儲至本地存儲中;若所述腳本執(zhí)行異常,則將所述腳本采用base64算法進行編碼后存儲至本地存儲中;

增量包獲取模塊4,用于瀏覽器請求獲取腳本時,若請求的腳本的地址與本地存儲中的腳本的地址相同、且請求的腳本的版本號大于所述本地存儲中的腳本的版本號,則依據(jù)所述請求的腳本的地址、版本號以及內(nèi)容的散列從服務器中獲取所述腳本的增量包;具體的,該增量包獲取模塊4,包括:第一獲取模塊41,用于服務器依據(jù)所述請求中的腳本的地址獲取與所述內(nèi)容的散列對應的腳本;第一計算模塊42,用于服務器通過delta算法對所述本地存儲中的腳本和獲取的與所述內(nèi)容的散列對應的腳本進行處理,生成增量包;發(fā)送模塊43,用于服務器將所述增量包發(fā)送至瀏覽器;

更新模塊5,用于將所述增量包與所述本地存儲中的腳本的內(nèi)容合并,完成瀏覽器腳本的更新;所述更新模塊5包括:第二計算模塊51,用于瀏覽器將所述增量包與所述本地存儲中的腳本通過delta算法進行合并,生成最新版本的腳本文件;

瀏覽器請求獲取腳本時,若存在與請求的腳本地址相同的本地存儲中的腳本、且請求的腳本的版本號小于或等于所述本地存儲中的腳本的版本號,則獲取所述本地存儲中的腳本。

綜上所述,本發(fā)明提供的瀏覽器腳本的更新方法及系統(tǒng),能夠采用增量更新的方式更新腳本,無需重新下載整個腳本文件,節(jié)省了流量和帶寬。

以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1