一種靜態(tài)資源實時生效方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種靜態(tài)資源實時生效方法及系統(tǒng),對靜態(tài)資源做數(shù)據(jù)摘要算法計算,將計算結(jié)果嵌入路徑名中,僅當(dāng)靜態(tài)資源發(fā)生更改時,其對應(yīng)的數(shù)據(jù)摘要算法計算的計算結(jié)果才會發(fā)送變化,從而導(dǎo)致其路徑名發(fā)生變化,而只有路徑名發(fā)生變化時,才需從服務(wù)器加載靜態(tài)資源;對于沒有更改的靜態(tài)資源,其路徑名未發(fā)生變化,從本地緩存加載靜態(tài)資源;本發(fā)明實現(xiàn)了靜態(tài)資源的非覆蓋式發(fā)布及實時快速生效。
【專利說明】
一種靜態(tài)資源實時生效方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及前端開發(fā)技術(shù)領(lǐng)域,特別涉及一種靜態(tài)資源實時生效方法及系統(tǒng)。
【背景技術(shù)】
[0002]由于靜態(tài)資源采用304做協(xié)商緩存,仍需要和服務(wù)器進行一次通信;目前常用的是強制瀏覽器使用本地緩存,只有當(dāng)網(wǎng)頁更新時,才通過更新靜態(tài)資源的路徑,讓瀏覽器主動放棄緩存,加載新路徑的靜態(tài)資源;但是,其更新靜態(tài)資源的路徑采用的是:在靜態(tài)資源的路徑名中添加時間戳,在每次網(wǎng)頁更新時,將更新時所處時間作為所有的靜態(tài)資源的路徑名的新時間戳;這種方式會導(dǎo)致某些沒有更改的靜態(tài)資源也放棄了本地緩存,加載新路徑的靜態(tài)資源。
【發(fā)明內(nèi)容】
[0003]本發(fā)明目的是提供一種靜態(tài)資源實時生效方法及系統(tǒng),解決現(xiàn)有技術(shù)中存在的上述問題。
[0004]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:
[0005]—種靜態(tài)資源實時生效方法,包括:
[0006]生成及更新靜態(tài)資源的路徑名:
[0007]網(wǎng)頁開發(fā)時,對靜態(tài)資源做數(shù)據(jù)摘要算法計算,將計算結(jié)果嵌入對應(yīng)靜態(tài)資源的路徑名中,生成對應(yīng)靜態(tài)資源的路徑名;
[0008]網(wǎng)頁更新時,再次對靜態(tài)資源做數(shù)據(jù)摘要算法計算,僅將新的計算結(jié)果替換對應(yīng)路徑名中原有的計算結(jié)果,更新對應(yīng)靜態(tài)資源的路徑名;
[0009]加載靜態(tài)資源:
[0010]根據(jù)需請求靜態(tài)資源的路徑名,判斷本地緩存中是否存在路徑名與所述路徑名相一致的靜態(tài)資源;是,則從本地緩存中加載路徑名與所述路徑名相一致的靜態(tài)資源;否,則從服務(wù)器加載與所述路徑名對應(yīng)的靜態(tài)資源,并將與所述路徑名對應(yīng)的靜態(tài)資源存儲至本地緩存中。
[0011 ]本發(fā)明的有益效果是:對靜態(tài)資源做數(shù)據(jù)摘要算法計算,將計算結(jié)果嵌入路徑名中,僅當(dāng)靜態(tài)資源發(fā)生更改時,其對應(yīng)的數(shù)據(jù)摘要算法計算的計算結(jié)果才會發(fā)送變化,從而導(dǎo)致其路徑名發(fā)生變化,而只有路徑名發(fā)生變化時,才需從服務(wù)器加載靜態(tài)資源;對于沒有更改的靜態(tài)資源,其路徑名未發(fā)生變化,從本地緩存加載靜態(tài)資源;本發(fā)明實現(xiàn)了靜態(tài)資源的非覆蓋式發(fā)布及實時快速生效。
[0012]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
[0013]進一步,所述網(wǎng)頁開發(fā)時和所述網(wǎng)頁更新時,均先部署靜態(tài)資源,再部署網(wǎng)頁。
[0014]采用上述進一步方案的有益效果是:先部署靜態(tài)資源,再部署網(wǎng)頁,結(jié)合靜態(tài)資源的非覆蓋式發(fā)布,實現(xiàn)網(wǎng)頁更新的平緩升級。
[0015]進一步,所述靜態(tài)資源包括描繪網(wǎng)頁外觀的圖片和CSS文件,以及瀏覽器中運行的JavaScript 代碼。
[ΟΟ? ?]進一步,所述數(shù)據(jù)摘要算法為md5算法。
[0017]進一步,還包括當(dāng)任一靜態(tài)資源在本地緩存中存儲的時長達預(yù)設(shè)時長時,將所述任一靜態(tài)資源從本地緩存中清除。
[0018]采用上述進一步方案的有益效果是:節(jié)省本地緩存空間。
[0019]本發(fā)明的另一技術(shù)方案如下:
[0020]一種靜態(tài)資源實時生效系統(tǒng),包括路徑名生成及更新模塊和靜態(tài)資源加載模塊;[0021 ]所述路徑名生成及更新模塊包括
[0022]路徑名生成單元,其用于網(wǎng)頁開發(fā)時,對靜態(tài)資源做數(shù)據(jù)摘要算法計算,將計算結(jié)果嵌入對應(yīng)靜態(tài)資源的路徑名中,生成對應(yīng)靜態(tài)資源的路徑名;
[0023]路徑名更新單元,其用于網(wǎng)頁更新時,再次對靜態(tài)資源做數(shù)據(jù)摘要算法計算,僅將新的計算結(jié)果替換對應(yīng)路徑名中原有的計算結(jié)果,更新對應(yīng)靜態(tài)資源的路徑名;
[0024]所述靜態(tài)資源加載模塊包括
[0025]加載單元,其用于根據(jù)需請求靜態(tài)資源的路徑名,判斷本地緩存中是否存在路徑名與所述路徑名相一致的靜態(tài)資源;是,則從本地緩存中加載路徑名與所述路徑名相一致的靜態(tài)資源;否,則從服務(wù)器加載與所述路徑名對應(yīng)的靜態(tài)資源;
[0026]存儲單元,其用于將與所述路徑名對應(yīng)的靜態(tài)資源存儲至本地緩存中。
[0027]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
[0028]進一步,還包括部署模塊,其用于所述網(wǎng)頁開發(fā)時和所述網(wǎng)頁更新時,均先部署靜態(tài)資源,再部署網(wǎng)頁。
[0029]進一步,所述靜態(tài)資源包括描繪網(wǎng)頁外觀的圖片和CSS文件,以及瀏覽器中運行的JavaScript 代碼。
[°03°]進一步,所述數(shù)據(jù)摘要算法為md5算法。
[0031]進一步,還包括清除模塊,其用于當(dāng)任一靜態(tài)資源在本地緩存中存儲的時長達預(yù)設(shè)時長時,將所述任一靜態(tài)資源從本地緩存中清除。
【附圖說明】
[0032]圖1為本發(fā)明一種靜態(tài)資源實時生效方法中生成及更新靜態(tài)資源的路徑名的流程圖;
[0033]圖2為本發(fā)明一種靜態(tài)資源實時生效方法中加載靜態(tài)資源的流程圖;
[0034]圖3為本發(fā)明一種靜態(tài)資源實時生效系統(tǒng)的系統(tǒng)原理框圖。
【具體實施方式】
[0035]以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0036]一種靜態(tài)資源實時生效方法,包括:
[0037]如圖1所示,生成及更新靜態(tài)資源的路徑名:
[0038]網(wǎng)頁開發(fā)時,對網(wǎng)頁的全部靜態(tài)資源分別做數(shù)據(jù)摘要算法計算,將計算結(jié)果嵌入對應(yīng)靜態(tài)資源的路徑名中,分別生成全部靜態(tài)資源的路徑名;
[0039]網(wǎng)頁更新時,對網(wǎng)頁的全部靜態(tài)資源再次分別做數(shù)據(jù)摘要算法計算,僅將新的計算結(jié)果替換對應(yīng)路徑名中原有的計算結(jié)果,分別更新全部靜態(tài)資源的路徑名;
[0040]如靜態(tài)資源A在網(wǎng)頁開發(fā)時,其數(shù)據(jù)摘要算法計算的計算結(jié)果為edfe234,則其對應(yīng)的路徑名URLSa_edf e234.css;網(wǎng)頁更新時,如果靜態(tài)資源A的內(nèi)容發(fā)生變化,其數(shù)據(jù)摘要算法計算的計算結(jié)果必將發(fā)生變化,如計算結(jié)果為bfed435,則其對應(yīng)的路徑名URL更新Sa_bf ed435.css;如果靜態(tài)資源A的內(nèi)容未發(fā)生變化,其數(shù)據(jù)摘要算法計算的計算結(jié)果必將不發(fā)生變化,則其對應(yīng)的路徑名URL更新后,仍為a_edf e234.css。
[0041 ]如圖2所示,加載靜態(tài)資源:
[0042]當(dāng)載入的網(wǎng)頁文件中存在靜態(tài)資源時,從所述網(wǎng)頁文件中獲取需請求的靜態(tài)資源的路徑名;
[0043]根據(jù)需請求靜態(tài)資源的路徑名,判斷本地緩存中是否存在路徑名與所述路徑名相一致的靜態(tài)資源;是,則從本地緩存中加載路徑名與所述路徑名相一致的靜態(tài)資源;否,則按所述路徑名向服務(wù)器發(fā)送靜態(tài)資源請求,加載與所述路徑名對應(yīng)的靜態(tài)資源,并將與所述路徑名對應(yīng)的靜態(tài)資源存儲至本地緩存中。
[0044]所述網(wǎng)頁開發(fā)時和所述網(wǎng)頁更新時,均先部署靜態(tài)資源,再部署網(wǎng)頁。
[0045]所述靜態(tài)資源包括描繪網(wǎng)頁外觀的圖片和CSS文件,以及瀏覽器中運行的JavaScript 代碼。
[0046]所述數(shù)據(jù)摘要算法為md5算法。
[0047]所述方法還當(dāng)任一靜態(tài)資源在本地緩存中存儲的時長達預(yù)設(shè)時長時,將所述任一靜態(tài)資源從本地緩存中清除。
[0048]如圖3所示,一種靜態(tài)資源實時生效系統(tǒng),包括路徑名生成及更新模塊和靜態(tài)資源加載模塊;
[0049]所述路徑名生成及更新模塊包括
[0050]路徑名生成單元,其具體用于網(wǎng)頁開發(fā)時,對網(wǎng)頁的全部靜態(tài)資源分別做數(shù)據(jù)摘要算法計算,將計算結(jié)果嵌入對應(yīng)靜態(tài)資源的路徑名中,分別生成全部靜態(tài)資源的路徑名;
[0051]路徑名更新單元,其具體用于網(wǎng)頁更新時,對網(wǎng)頁的全部靜態(tài)資源再次分別做數(shù)據(jù)摘要算法計算,僅將新的計算結(jié)果替換對應(yīng)路徑名中原有的計算結(jié)果,分別更新全部靜態(tài)資源的路徑名;
[0052]所述靜態(tài)資源加載模塊包括
[0053]獲取單元,其具體用于當(dāng)載入的網(wǎng)頁文件中存在靜態(tài)資源時,從所述網(wǎng)頁文件中獲取需請求的靜態(tài)資源的路徑名;
[0054]加載單元,其具體用于根據(jù)需請求靜態(tài)資源的路徑名,判斷本地緩存中是否存在路徑名與所述路徑名相一致的靜態(tài)資源;是,則從本地緩存中加載路徑名與所述路徑名相一致的靜態(tài)資源;否,則按所述路徑名向服務(wù)器發(fā)送靜態(tài)資源請求,加載與所述路徑名對應(yīng)的靜態(tài)資源;
[0055]存儲單元,其具體用于將與所述路徑名對應(yīng)的靜態(tài)資源存儲至本地緩存中。
[0056]所述系統(tǒng)還包括部署模塊,其具體用于所述網(wǎng)頁開發(fā)時和所述網(wǎng)頁更新時,均先部署靜態(tài)資源,再部署網(wǎng)頁。
[0057]所述靜態(tài)資源包括描繪網(wǎng)頁外觀的圖片和CSS文件,以及瀏覽器中運行的JavaScript 代碼。
[0058]所述數(shù)據(jù)摘要算法為md5算法。
[0059]所述系統(tǒng)還包括清除模塊,其具體用于當(dāng)任一靜態(tài)資源在本地緩存中存儲的時長達預(yù)設(shè)時長時,將所述任一靜態(tài)資源從本地緩存中清除。
[0060]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1.一種靜態(tài)資源實時生效方法,其特征在于,包括: 生成及更新靜態(tài)資源的路徑名: 網(wǎng)頁開發(fā)時,對靜態(tài)資源做數(shù)據(jù)摘要算法計算,將計算結(jié)果嵌入對應(yīng)靜態(tài)資源的路徑名中,生成對應(yīng)靜態(tài)資源的路徑名; 網(wǎng)頁更新時,再次對靜態(tài)資源做數(shù)據(jù)摘要算法計算,僅將新的計算結(jié)果替換對應(yīng)路徑名中原有的計算結(jié)果,更新對應(yīng)靜態(tài)資源的路徑名; 加載靜態(tài)資源: 根據(jù)需請求靜態(tài)資源的路徑名,判斷本地緩存中是否存在路徑名與所述路徑名相一致的靜態(tài)資源;是,則從本地緩存中加載路徑名與所述路徑名相一致的靜態(tài)資源;否,則從服務(wù)器加載與所述路徑名對應(yīng)的靜態(tài)資源,并將與所述路徑名對應(yīng)的靜態(tài)資源存儲至本地緩存中。2.根據(jù)權(quán)利要求1所述一種靜態(tài)資源實時生效方法,其特征在于,所述網(wǎng)頁開發(fā)時和所述網(wǎng)頁更新時,均先部署靜態(tài)資源,再部署網(wǎng)頁。3.根據(jù)權(quán)利要求1所述一種靜態(tài)資源實時生效方法,其特征在于,所述靜態(tài)資源包括描繪網(wǎng)頁外觀的圖片和CSS文件,以及瀏覽器中運行的JavaScript代碼。4.根據(jù)權(quán)利要求1所述一種靜態(tài)資源實時生效方法,其特征在于,所述數(shù)據(jù)摘要算法為md5算法。5.根據(jù)權(quán)利要求1至4任一所述一種靜態(tài)資源實時生效方法,其特征在于,還包括當(dāng)任一靜態(tài)資源在本地緩存中存儲的時長達預(yù)設(shè)時長時,將所述任一靜態(tài)資源從本地緩存中清除。6.—種靜態(tài)資源實時生效系統(tǒng),其特征在于,包括路徑名生成及更新模塊和靜態(tài)資源加載模塊; 所述路徑名生成及更新模塊包括 路徑名生成單元,其用于網(wǎng)頁開發(fā)時,對靜態(tài)資源做數(shù)據(jù)摘要算法計算,將計算結(jié)果嵌入對應(yīng)靜態(tài)資源的路徑名中,生成對應(yīng)靜態(tài)資源的路徑名; 路徑名更新單元,其用于網(wǎng)頁更新時,再次對靜態(tài)資源做數(shù)據(jù)摘要算法計算,僅將新的計算結(jié)果替換對應(yīng)路徑名中原有的計算結(jié)果,更新對應(yīng)靜態(tài)資源的路徑名; 所述靜態(tài)資源加載模塊包括 加載單元,其用于根據(jù)需請求靜態(tài)資源的路徑名,判斷本地緩存中是否存在路徑名與所述路徑名相一致的靜態(tài)資源;是,則從本地緩存中加載路徑名與所述路徑名相一致的靜態(tài)資源;否,則從服務(wù)器加載與所述路徑名對應(yīng)的靜態(tài)資源; 存儲單元,其用于將與所述路徑名對應(yīng)的靜態(tài)資源存儲至本地緩存中。7.根據(jù)權(quán)利要求6所述一種靜態(tài)資源實時生效系統(tǒng),其特征在于,還包括部署模塊,其用于所述網(wǎng)頁開發(fā)時和所述網(wǎng)頁更新時,均先部署靜態(tài)資源,再部署網(wǎng)頁。8.根據(jù)權(quán)利要求6所述一種靜態(tài)資源實時生效系統(tǒng),其特征在于,所述靜態(tài)資源包括描繪網(wǎng)頁外觀的圖片和CSS文件,以及瀏覽器中運行的JavaScript代碼。9.根據(jù)權(quán)利要求6所述一種靜態(tài)資源實時生效系統(tǒng),其特征在于,所述數(shù)據(jù)摘要算法為md5算法。10.根據(jù)權(quán)利要求6至9任一所述一種靜態(tài)資源實時生效系統(tǒng),其特征在于,還包括清除模塊,其用于當(dāng)任一靜態(tài)資源在本地緩存中存儲的時長達預(yù)設(shè)時長時,將所述任一靜態(tài)資源從本地緩存中清除。
【文檔編號】G06F17/30GK106021300SQ201610290353
【公開日】2016年10月12日
【申請日】2016年5月4日
【發(fā)明人】康建云
【申請人】北京思特奇信息技術(shù)股份有限公司