最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js文件緩存之版本管理詳解

 更新時(shí)間:2013年07月05日 15:00:22   作者:  
以前也做過不少項(xiàng)目,但從來(lái)就沒有把關(guān)注的目光投向過js文件緩存。最近終于在毫無(wú)意識(shí)的情況下跳進(jìn)了這個(gè)大坑

近幾個(gè)月來(lái)的工作是一個(gè)交易系統(tǒng)持續(xù)改進(jìn)項(xiàng)目,迭代發(fā)布周期大約為2~3周。最近一次迭代是V16版,在禮拜三完成發(fā)布。不幸的是,第二天上午就被老大逮過去。原來(lái)老大從生產(chǎn)中揪出了一個(gè)bug,大致的問題如下:

系統(tǒng)中有一個(gè)常用的自定義控件,目的是協(xié)助選擇客戶,而V16版的持續(xù)改進(jìn)需求是給控件增加兩個(gè)篩選選項(xiàng),支持不同的默認(rèn)值配置。很簡(jiǎn)單的一個(gè)需求,代碼修改也簡(jiǎn)單,其中一個(gè)修改是給一個(gè)js文件里邊的一個(gè)函數(shù)增加了一個(gè)傳入?yún)?shù),用來(lái)傳遞配置值。經(jīng)過RC、RTW測(cè)試,一切都顯得很正常,不過上了生產(chǎn)才被發(fā)現(xiàn)bug了。加載出來(lái)的客戶明顯不正常、數(shù)目不對(duì),也與預(yù)期的查詢配置不相符。

檢查控件內(nèi)部跳轉(zhuǎn)鏈接,發(fā)現(xiàn)問題,傳遞的參數(shù)明顯與預(yù)期不符,而這個(gè)鏈接則是由上面修改過的JS函數(shù)生成。因此判定問題是由于客戶端緩存了原版JS文件,新函數(shù)的調(diào)用由舊函數(shù)所替換引發(fā)的。經(jīng)過清除緩存,重新加載頁(yè)面后,這個(gè)自定義控件能夠正常工作。很不幸的是,我們是不能通過打電話告訴每一位用戶,你需要清除緩存,然后才能正常使用這個(gè)功能。

到此時(shí),我才意識(shí)到需要一種方法來(lái)控件JS的緩存問題,否則,后續(xù)任何涉及JS文件內(nèi)容的修改,都會(huì)因?yàn)榫彺鏌o(wú)法獲取最新JS文件,而導(dǎo)致生產(chǎn)事故。

原則上,我們是需要在有JS更新的時(shí)候,才會(huì)去重新加載JS文件,而不是每次都重新加載,因此第一種做法給JS應(yīng)用地址后添加隨機(jī)參數(shù)是不可取的,因?yàn)樗馕吨?,幾乎每次加載頁(yè)面都會(huì)是重新加載JS,而不會(huì)合理的利用緩存JS。但是,我們還有第二種更合理的做法,如果關(guān)注過一些國(guó)外網(wǎng)站代碼,會(huì)發(fā)現(xiàn),他們通常是在js鏈接后添加一個(gè)版本號(hào)參數(shù),而不是隨機(jī)數(shù),當(dāng)js代碼發(fā)生修改時(shí),只需要將版本號(hào)加1,就可以很巧妙的解決通知客戶端更新js文件。不知道,誰(shuí)是第一個(gè)想到這種方法的人,不過毫無(wú)疑問,他是值得我們欽佩的,真是一個(gè)不錯(cuò)的idea的!

附贈(zèng)些許代碼:
<script src="../JavaScript/SelectOpenWindow.js?v=1" type="text/javascript"></script>

相關(guān)文章

  • javascript基礎(chǔ)之?dāng)?shù)據(jù)類型詳解

    javascript基礎(chǔ)之?dāng)?shù)據(jù)類型詳解

    這篇文章主要介紹了如何理解JavaScript中的數(shù)據(jù)類型,幫助大家更好的學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2021-11-11
  • JavaScript基礎(chǔ)知識(shí)點(diǎn)歸納(推薦)

    JavaScript基礎(chǔ)知識(shí)點(diǎn)歸納(推薦)

    下面小編就為大家?guī)?lái)一篇JavaScript基礎(chǔ)知識(shí)點(diǎn)歸納(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2016-07-07
  • JavaScript中prototype為對(duì)象添加屬性的誤區(qū)介紹

    JavaScript中prototype為對(duì)象添加屬性的誤區(qū)介紹

    prototype為對(duì)象添加屬性的的過程中有些誤區(qū),在本文將為大家詳細(xì)介紹下,感興趣的朋友可不要錯(cuò)過
    2013-10-10
  • js字符串轉(zhuǎn)成JSON

    js字符串轉(zhuǎn)成JSON

    幾個(gè)不錯(cuò)的JS字符串轉(zhuǎn)成JSON對(duì)象實(shí)例
    2013-11-11
  • javascript RegExp 使用說明

    javascript RegExp 使用說明

    這篇文章主要介紹了javascript RegExp 使用說明 ,需要的朋友可以參考下
    2016-05-05
  • 淺談JavaScript 框架分類

    淺談JavaScript 框架分類

    本文簡(jiǎn)單介紹了javascript的5種框架分類,以及框架特征的相關(guān)資料,有需要的童鞋們可以參考下
    2014-11-11
  • JavaScript中document.referrer的用法詳解

    JavaScript中document.referrer的用法詳解

    這篇文章主要給大家介紹了關(guān)于JavaScript中document.referrer的用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-07-07
  • JavaScript之編碼規(guī)范 推薦

    JavaScript之編碼規(guī)范 推薦

    JavaScript是一種語(yǔ)法靈活,簡(jiǎn)單易懂的腳本語(yǔ)言。正因?yàn)殪`活,因此很多人在編寫代碼時(shí),顯得很隨意,這就導(dǎo)致后期的修改、擴(kuò)展和維護(hù)變得異常困難。遵循統(tǒng)一的編碼規(guī)范,不僅對(duì)C++和Java這種編譯型語(yǔ)言很重要,對(duì)JavaScript腳本語(yǔ)言也同樣如此
    2012-05-05
  • mailto的使用技巧分享

    mailto的使用技巧分享

    如何使用mailto?對(duì)于大多數(shù)人來(lái)說并不是很陌生,但是實(shí)用上的細(xì)節(jié)部分你們有沒有注意到,接下來(lái)分享一下本人在使用過程中的經(jīng)驗(yàn),需要了解的朋友可以參考下
    2012-12-12
  • 處理及遍歷XML文檔DOM元素屬性及方法整理

    處理及遍歷XML文檔DOM元素屬性及方法整理

    本文整理了一些用于處理及遍歷XML文檔的DOM元素屬性與方法及動(dòng)態(tài)創(chuàng)建內(nèi)容時(shí)所用的W3C DOM屬性和方法,有需求的朋友可以參考下,希望對(duì)大家有所幫助
    2013-08-08

最新評(píng)論

澄迈县| 上犹县| 洞头县| 易门县| 荆州市| 工布江达县| 达尔| 三都| 吴旗县| 缙云县| 昂仁县| 洪江市| 宾川县| 内丘县| 顺昌县| 东乡族自治县| 云安县| 冕宁县| 博兴县| 双柏县| 扎兰屯市| 武汉市| 黎川县| 遂溪县| 陆丰市| 绵阳市| 南平市| 霸州市| 镇沅| 思茅市| 阳江市| 应用必备| 郯城县| 虹口区| 香格里拉县| 醴陵市| 江永县| 乐至县| 光泽县| 太康县| 紫云|