本發(fā)明涉及web開(kāi)發(fā)領(lǐng)域,尤其涉及一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法。
背景技術(shù):
當(dāng)前web前端發(fā)布資源文件,只能在開(kāi)發(fā)環(huán)境,通過(guò)svn保持著著最新的版本。從開(kāi)發(fā)環(huán)境發(fā)布到正式環(huán)境時(shí),如果不采取策略,客戶端由于瀏覽器緩存的原因,不能及時(shí)看到最新的頁(yè)面效果。
最原始的解決辦法是通知使用者去清空瀏覽器緩存去看到最新的版本。
高級(jí)一點(diǎn)的方法是在引用資源文件的時(shí)候加個(gè)全局固定的版本號(hào),可以避免客戶端緩存的問(wèn)題。但是每次更新,就算更新一個(gè)很小的文件,客戶端也需要重新加載所有的資源文件,影響客戶瀏覽體驗(yàn)。
因此,現(xiàn)有的web前端發(fā)布資源文件時(shí),客戶端由于瀏覽器緩存的原因,不能及時(shí)看到最新的頁(yè)面效果是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法,用于解決現(xiàn)有的web前端發(fā)布資源文件時(shí),客戶端由于瀏覽器緩存的原因,不能及時(shí)看到最新的頁(yè)面效果的技術(shù)問(wèn)題。
本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法,包括:
s1:讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件,并生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布;
s2:讀取版本號(hào)列表并根據(jù)版本號(hào)列表中的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件;
其中,所述版本號(hào)列表包括svn系統(tǒng)的版本信息、與版本信息對(duì)應(yīng)的資源文件在svn系統(tǒng)中的svn版本號(hào)。
優(yōu)選地,所述步驟s1具體包括:
s1001:讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件;
s1002:檢測(cè)版本信息和資源文件是否有更新,若是,則生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布,若否,則結(jié)束。
優(yōu)選地,所述步驟s2之前還包括:
t1:加載需要瀏覽的頁(yè)面并調(diào)用統(tǒng)一文件加載器;
t2:根據(jù)統(tǒng)一文件加載器加載版本號(hào)列表和資源文件。
優(yōu)選地,所述步驟s2具體包括:
s2001:讀取版本號(hào)列表中的第一個(gè)svn版本號(hào);
s2002:根據(jù)讀取的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件;
s2003:判斷是否將所有svn版本號(hào)讀取完畢,若否,則讀取版本號(hào)列表中的下一個(gè)svn版本號(hào)并返回執(zhí)行步驟s2002,若是,則結(jié)束。
優(yōu)選地,所述步驟s1中將版本號(hào)列表和資源文件發(fā)布具體為:
將資源文件發(fā)布到正式環(huán)境中;
將版本號(hào)列表和頁(yè)面文件發(fā)布到正式環(huán)境中;
其中,所述正式環(huán)境為web開(kāi)發(fā)過(guò)程中與測(cè)試環(huán)境相對(duì)的正式使用環(huán)境。
本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的裝置,包括:
發(fā)布工具,用于讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件,并生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布;
前端加載工具,用于讀取版本號(hào)列表并根據(jù)版本號(hào)列表中的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件;
其中,所述版本號(hào)列表包括svn系統(tǒng)的版本信息、與版本信息對(duì)應(yīng)的資源文件在svn系統(tǒng)中的svn版本號(hào)。
優(yōu)選地,所述發(fā)布工具具體包括:
svn讀取單元,用于讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件;
檢測(cè)發(fā)布單元,用于檢測(cè)版本信息和資源文件是否有更新,若是,則生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布,若否,則結(jié)束。
優(yōu)選地,本發(fā)明實(shí)施例還包括:
頁(yè)面加載模塊,用于加載需要瀏覽的頁(yè)面并調(diào)用統(tǒng)一文件加載器;
版本加載模塊,用于根據(jù)統(tǒng)一文件加載器將版本號(hào)列表和資源文件加載至前端加載工具。
優(yōu)選地,所述前端加載工具具體包括:
第一版本號(hào)讀取單元,用于讀取版本號(hào)列表中的第一個(gè)svn版本號(hào);
資源文件讀取單元,用于根據(jù)讀取的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件;
循環(huán)讀取單元,用于判斷是否將所有svn版本號(hào)讀取完畢,若否,則讀取版本號(hào)列表中的下一個(gè)svn版本號(hào)并返回執(zhí)行資源文件讀取單元,若是,則結(jié)束。
優(yōu)選地,所述發(fā)布工具中的將版本號(hào)列表和資源文件發(fā)布具體由以下單元完成:
資源文件發(fā)布單元,用于將資源文件發(fā)布到正式環(huán)境中;
頁(yè)面發(fā)布單元,用于將版本號(hào)列表和頁(yè)面文件發(fā)布到正式環(huán)境中;
其中,所述正式環(huán)境為web開(kāi)發(fā)過(guò)程中與測(cè)試環(huán)境相對(duì)的正式使用環(huán)境。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法,包括:讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件,并生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布,讀取版本號(hào)列表并根據(jù)版本號(hào)列表中的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件,從而在瀏覽器具有緩存的時(shí)候能根據(jù)svn版本號(hào)讀取緩存或者是發(fā)布的資源文件,及時(shí)更新資源文件,解決了現(xiàn)有的web前端發(fā)布資源文件時(shí),客戶端由于瀏覽器緩存的原因,不能及時(shí)看到最新的頁(yè)面效果的技術(shù)問(wèn)題。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法的一個(gè)實(shí)施例的流程圖;
圖2為本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法的另一個(gè)實(shí)施例的流程圖;
圖3為本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法的另一個(gè)實(shí)施例的另一種流程圖;
圖4為本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法中用于解釋開(kāi)發(fā)環(huán)境、正式環(huán)境、客戶端之間的關(guān)系的圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法,用于解決現(xiàn)有的web前端發(fā)布資源文件時(shí),客戶端由于瀏覽器緩存的原因,不能及時(shí)看到最新的頁(yè)面效果的技術(shù)問(wèn)題。
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參閱圖1,本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法的一個(gè)實(shí)施例,包括:
101:讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件,并生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布;
102:讀取版本號(hào)列表并根據(jù)版本號(hào)列表中的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件;
其中,所述版本號(hào)列表包括svn系統(tǒng)的版本信息、與版本信息對(duì)應(yīng)的資源文件在svn系統(tǒng)中的svn版本號(hào)。
本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法,包括:讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件,并生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布,讀取版本號(hào)列表并根據(jù)版本號(hào)列表中的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件,從而在瀏覽器具有緩存的時(shí)候能根據(jù)svn版本號(hào)讀取緩存或者是發(fā)布的資源文件,及時(shí)更新資源文件,解決了現(xiàn)有的web前端發(fā)布資源文件時(shí),客戶端由于瀏覽器緩存的原因,不能及時(shí)看到最新的頁(yè)面效果的技術(shù)問(wèn)題。
以下將對(duì)本發(fā)明實(shí)施例提供的本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法的另一個(gè)實(shí)施例進(jìn)行詳細(xì)的描述。
請(qǐng)參閱圖2和圖3,本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的方法的另一個(gè)實(shí)施例,包括:
201:讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件;
202:檢測(cè)版本信息和資源文件是否有更新,若是,則生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布,若否,則結(jié)束。
203:加載需要瀏覽的頁(yè)面并調(diào)用統(tǒng)一文件加載器;
204:根據(jù)統(tǒng)一文件加載器加載版本號(hào)列表和資源文件。
205:讀取版本號(hào)列表中的第一個(gè)svn版本號(hào);
206:根據(jù)讀取的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件;
207:判斷是否將所有svn版本號(hào)讀取完畢,若否,則讀取版本號(hào)列表中的下一個(gè)svn版本號(hào)并返回執(zhí)行步驟206,若是,則結(jié)束。
其中,所述版本號(hào)列表包括svn系統(tǒng)的版本信息、與版本信息對(duì)應(yīng)的資源文件在svn系統(tǒng)中的svn版本號(hào)。
步驟202中將版本號(hào)列表和資源文件發(fā)布具體為:
將資源文件發(fā)布到正式環(huán)境中;
將版本號(hào)列表和頁(yè)面文件發(fā)布到正式環(huán)境中;
其中,所述正式環(huán)境為web開(kāi)發(fā)過(guò)程中與測(cè)試環(huán)境相對(duì)的正式使用環(huán)境。
需要說(shuō)明的是,本專利的目的就是解決上述問(wèn)題,打通svn的版本號(hào)到發(fā)布環(huán)境的版本號(hào)。由于svn的對(duì)所有文件都有自己的版本號(hào),通過(guò)本專利的發(fā)布工具和前端加載工具,可以對(duì)應(yīng)所有前端文件生成唯一的版本號(hào),生成資源文件的版本號(hào)列表,一鍵發(fā)布到正式環(huán)境中。這樣可以每次發(fā)布到正式環(huán)境后,避免客戶端緩存文件立即可以查看最新的頁(yè)面;又可以做到增量更新,就算只更新一個(gè)文件,客戶端也不用重新加載所有文件,極大提高瀏覽體驗(yàn)。同時(shí)解決生成版本號(hào),發(fā)布文件時(shí)機(jī)械勞動(dòng),通過(guò)工具一鍵發(fā)布,提高生產(chǎn)力。
目前類似的前端版本管理技術(shù)中,有一種解決方案也可以實(shí)現(xiàn)前端資源版本管理:就是通過(guò)后臺(tái)端(jsp、php或其他)統(tǒng)一對(duì)資源文件的版本號(hào)進(jìn)行管理。
對(duì)比起本專利,上述方法存在一些不足:對(duì)后端依賴,跟svn版本號(hào)不一定統(tǒng)一,版本回滾需要全文件回滾。
尤其是對(duì)后端依賴這個(gè)問(wèn)題,本專利是純前端控制的版本讀取,不依賴任何后端,可以方便實(shí)現(xiàn)同一前端框架對(duì)接不同后端。
本專利的版本號(hào)與svn版本號(hào)一致,這樣可以直接在客戶端就可以很方便查看當(dāng)前的前端文件是否最新版本。
請(qǐng)參閱圖4,本發(fā)明實(shí)施例中的開(kāi)發(fā)環(huán)境、正式環(huán)境、客戶端之間的關(guān)系如圖4所示。
本專利的關(guān)鍵點(diǎn)是:
1.打通了開(kāi)發(fā)環(huán)境的svn版本與正式環(huán)境的版本,使得版本號(hào)得以統(tǒng)一,方便維護(hù)。
2.通過(guò)工具整合了從svn更新,到根據(jù)svn版本信息生成對(duì)應(yīng)的版本文件的工作流程,免去手動(dòng)維護(hù),提高生產(chǎn)力,減少出錯(cuò)概率。
3.提供前端統(tǒng)一加載器,實(shí)現(xiàn)統(tǒng)一的資源文件的版本管理。
需要說(shuō)明的是,本專利產(chǎn)生資源文件的版本過(guò)程,其實(shí)就是對(duì)資源文件生成一個(gè)版本號(hào)的副本。上傳到正式環(huán)境的服務(wù)器時(shí),可以有效避免發(fā)布時(shí)的間隙問(wèn)題。否則,用傳統(tǒng)的發(fā)布方法,發(fā)布時(shí)覆蓋資源文件的先后間隔問(wèn)題,此時(shí)客戶端刷新頁(yè)面就會(huì)不可避免出現(xiàn)文件不同步而產(chǎn)生的bug。
因?yàn)樾碌馁Y源文件是副本,發(fā)布時(shí)不會(huì)覆蓋現(xiàn)有的文件,所以先發(fā)布資源文件,再發(fā)布頁(yè)面文件和版本列表,就能解決上述的間隔問(wèn)題。
如果涉及到版本回滾,可以較少操作的文件。因?yàn)榕f版本的文件在正式環(huán)境存在副本,所以可以不用回滾資源文件,只需要回滾html頁(yè)面和版本列表文件即可。
以下將對(duì)本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的裝置的一個(gè)實(shí)施例進(jìn)行詳細(xì)的描述。
本發(fā)明實(shí)施例提供的一種關(guān)于web前端資源文件版本統(tǒng)一管理與發(fā)布的裝置,包括:
發(fā)布工具,用于讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件,并生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布;
前端加載工具,用于讀取版本號(hào)列表并根據(jù)版本號(hào)列表中的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件;
其中,所述版本號(hào)列表包括svn系統(tǒng)的版本信息、與版本信息對(duì)應(yīng)的資源文件在svn系統(tǒng)中的svn版本號(hào)。
發(fā)布工具具體包括:
svn讀取單元,用于讀取svn系統(tǒng)的版本信息和與版本信息對(duì)應(yīng)的資源文件;
檢測(cè)發(fā)布單元,用于檢測(cè)版本信息和資源文件是否有更新,若是,則生成相應(yīng)的版本號(hào)列表并將版本號(hào)列表和資源文件發(fā)布,若否,則結(jié)束。
本發(fā)明實(shí)施例還包括:
頁(yè)面加載模塊,用于加載需要瀏覽的頁(yè)面并調(diào)用統(tǒng)一文件加載器;
版本加載模塊,用于根據(jù)統(tǒng)一文件加載器將版本號(hào)列表和資源文件加載至前端加載工具。
前端加載工具具體包括:
第一版本號(hào)讀取單元,用于讀取版本號(hào)列表中的第一個(gè)svn版本號(hào);
資源文件讀取單元,用于根據(jù)讀取的svn版本號(hào)檢測(cè)瀏覽器緩存中是否包含與svn版本號(hào)對(duì)應(yīng)的資源文件,若是,則讀取瀏覽器緩存中的緩存資源文件,若否,則根據(jù)版本號(hào)列表中的svn版本號(hào)讀取對(duì)應(yīng)的已發(fā)布的資源文件;
循環(huán)讀取單元,用于判斷是否將所有svn版本號(hào)讀取完畢,若否,則讀取版本號(hào)列表中的下一個(gè)svn版本號(hào)并返回執(zhí)行資源文件讀取單元,若是,則結(jié)束。
發(fā)布工具中的將版本號(hào)列表和資源文件發(fā)布具體由以下單元完成:
資源文件發(fā)布單元,用于將資源文件發(fā)布到正式環(huán)境中;
頁(yè)面發(fā)布單元,用于將版本號(hào)列表和頁(yè)面文件發(fā)布到正式環(huán)境中;
其中,所述正式環(huán)境為web開(kāi)發(fā)過(guò)程中與測(cè)試環(huán)境相對(duì)的正式使用環(huán)境。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
以上所述,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。