摘要:即在內(nèi)添加版本號(hào)的解決方案這樣的做法的確可以達(dá)到清緩存的目的。重新渲染而代理又緩存了的,如果在更新的話就只能繼續(xù)改版本號(hào)。
最近項(xiàng)目中出現(xiàn)修改js,線上并沒有實(shí)時(shí)更新而是使用的緩存中的js。
當(dāng)然如果你的頁面是單頁面應(yīng)用的話,解決方案就很簡單了,修改index.js后面的版本號(hào)就好了。
mudel.export = { //html文件名 不能重名-。- "a":{ //主js文件 js : ["a.js","b.js"] //兼容修改多個(gè)JS css : [] } }
如果html放在前端的話,也會(huì)簡單很多,可以使用gulp在打包的時(shí)候配置一下--src a ,讓gulp去自動(dòng)完成替換版本號(hào)操作。
這里解決的是當(dāng)html放在后端使用VM或者其他模板引擎渲染出來的。
究其原因是因?yàn)楹蠖说穆酚赏ㄟ^get請(qǐng)求返回html。而get請(qǐng)求通過配置被緩存,所以導(dǎo)致html被緩存。
而js請(qǐng)求也屬于get請(qǐng)求,所以也會(huì)被緩存。
1、按需添加版本號(hào)
根據(jù)以上分析,一個(gè)很大眾的解決方案出現(xiàn)了。即在
這樣的做法的確可以達(dá)到清緩存的目的。這里客戶端會(huì)先去和代理中的緩存進(jìn)行對(duì)比,發(fā)現(xiàn)請(qǐng)求參數(shù)發(fā)生了變更,所以重新從服務(wù)器中獲取js。重新渲染而代理又緩存了v=2的js,如果在更新的話就只能繼續(xù)改版本號(hào)。
2、自動(dòng)生成版本號(hào)(以時(shí)間戳,或者生成UUID)
既然方案一可以解決緩存問題那么“懶蟲”們就想到可以動(dòng)態(tài)的設(shè)置版本號(hào),思想就是每次生成不重復(fù)的ID就可以了。但是這樣子又引發(fā)了其他問題。
導(dǎo)致只要訪問這個(gè)JS無論是不是修改過這個(gè)js都會(huì)從服務(wù)器重新取得js,導(dǎo)致沒有緩存的存在浪費(fèi)了很多的流量和很差的體驗(yàn)。類似的方案也可以在meta Tag中做配置也可以實(shí)現(xiàn)無緩存設(shè)置。
類似的方案很多,也可以添加script Tag,動(dòng)態(tài)添加需要引入的JS。在使用webpack打包的時(shí)候在末尾的文件中添加一段JS
VM或者jsp等...在后端模板渲染的html中寫入以下JS
額~~好吧,其實(shí)沒啥用。
既然html是放在后端的那么修改的操作最好是由后端來處理更迅速更快捷。
3、通過請(qǐng)求修改版本號(hào)
可以通過本地開啟已個(gè)服務(wù)寫一個(gè)簡單的HTML,有input 和button就可以了。每次局部上線的時(shí)候?qū)⑽募麑懭雐nput框,同時(shí)前后端要有一個(gè)共同的約定模板由前端書寫
mudel.export = { //js文件名 key 這里可以使用不能重名-。- //可以使用symbol "a":"具體的路徑a.js" }
發(fā)送請(qǐng)求后,后端解析文件名找到對(duì)應(yīng)文件,對(duì)模板引擎中的?v=xxx 進(jìn)行替換。
4、寫一個(gè)node放在服務(wù)器上跑,用來修改線上的js版本用來清除緩存
這個(gè)只是個(gè)想法??!一般不能這么用,太危險(xiǎn)了~~ -。-被中間人攻擊服務(wù)器就直接爆炸了。
以上純屬個(gè)人想法,如果有疑問歡迎提出。如果有什么更好的意見和想法喜歡您不要吝嗇~ 謝謝您!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/88007.html
摘要:如果想讓模塊再次執(zhí)行,必須清楚緩存同步加載模塊只有加載完成之后,才能執(zhí)行后面的操作運(yùn)行時(shí)加載中的實(shí)現(xiàn)對(duì)象中提供了一個(gè)構(gòu)造函數(shù),每個(gè)模塊都是構(gòu)造函數(shù)的實(shí)例。 什么是模塊化 1、模塊化 模塊化是自頂向下逐層將系統(tǒng)劃分成若干更好的可管理模塊的方式,用來分割、組織和打包軟件,達(dá)到高度解耦 2、模塊 模塊是可組合、分解、更換的單元; 每個(gè)模塊完成一個(gè)特定子功能,模塊間通過某種方式組裝起來,成為...
摘要:經(jīng)過一系列優(yōu)化后,在平臺(tái)上,點(diǎn)擊到頁面首屏展示的耗時(shí)從平均多降低為,優(yōu)化以上。而現(xiàn)在頁面為了更好地為用戶推薦喜歡的內(nèi)容,我們后臺(tái)引入機(jī)器學(xué)習(xí)和隨機(jī)算法來做智能個(gè)性化推薦。另外還有部分的內(nèi)容是隨機(jī)算法推薦的。 VasSonic成長歷程 前言 2017.8.8 14時(shí),SNG增值產(chǎn)品部Vas團(tuán)隊(duì)研發(fā)的輕量級(jí)高性能Hybrid框架VasSonic通過了公司最終審核,作為騰訊開源組件分享給大...
閱讀 3801·2021-10-09 09:44
閱讀 3547·2021-09-22 15:29
閱讀 3405·2019-08-30 15:54
閱讀 3101·2019-08-29 16:19
閱讀 2291·2019-08-29 12:50
閱讀 669·2019-08-26 14:04
閱讀 1801·2019-08-23 18:39
閱讀 1423·2019-08-23 17:59