欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

高性能WEB開發(fā)怎么實(shí)現(xiàn)JS、CSS的合并壓縮

本篇內(nèi)容介紹了“高性能WEB開發(fā)怎么實(shí)現(xiàn)JS、CSS的合并壓縮”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)呂梁免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

存在的問題:

合并、壓縮文件主要有2方面的問題:

1. 每次發(fā)布的時(shí)候需要運(yùn)行一下自己寫的bat文件或者其他程序把文件按照自己的配置合并和壓縮。

2. 因生產(chǎn)環(huán)境和開發(fā)環(huán)境需要加載的文件不一樣,生產(chǎn)環(huán)境為了需要加載合并、壓縮后的文件,而開發(fā)環(huán)境為了修改、調(diào)試方便,需要加載非合并、壓縮的文件,所以我們常常需要在JSP中類似與下面的判斷代碼:

<c:if test="${env=='prod'}">    <script type="text/javascript" src="/js/all.js"></script> </c:if> <c:if test="${env=='dev'}">    <script type="text/javascript" src="/js/1.js"></script>    <script type="text/javascript" src="/js/2.js"></script>    <script type="text/javascript" src="/js/3.js"></script> </c:if>

緩存問題:在現(xiàn)在JS滿天飛的時(shí)代,大家都知道緩存能帶來的巨大好處,但緩存確實(shí)非常麻煩的一個(gè)問題,相信很多人曾經(jīng)歷過下面的情況:為了讓程序更快,在服務(wù)器上為JS加上緩沖5天的代碼,但產(chǎn)品更新后第二天就接到電話說系統(tǒng)出錯(cuò),詳細(xì)了解后就發(fā)現(xiàn)是緩存引起的,讓用戶刪除緩存后就會(huì)OK。原因很簡(jiǎn)單,就是你JS已經(jīng)修改了,但用戶還在使用緩存中的老JS。在經(jīng)歷幾次這種情況,被領(lǐng)導(dǎo)數(shù)落了幾次后。沒辦法只能把JS的緩沖去掉,或者改成8個(gè)小時(shí)??蛇@樣就完全失去了緩存的優(yōu)勢(shì)了,哪我們到底需要解決哪些問題才能讓我們使用緩沖順心如意了?

1. 如何在修改了某個(gè)JS后,自動(dòng)把所有引用該JS頁面的代碼中加上1個(gè)版本號(hào)?

2. 該如何生成版本號(hào),根據(jù)什么來產(chǎn)生這個(gè)版本號(hào)。

可能有人為了解決上面的緩存問題,寫了個(gè)JSP標(biāo)簽,通過標(biāo)簽讀取JS、css文件的修改時(shí)間來作為版本號(hào),從而來解決上面2個(gè)問題。但這種方法有下面幾個(gè)缺點(diǎn):

1. 每次請(qǐng)求都要通過標(biāo)簽讀取讀取文件的修改時(shí)間,速度慢。當(dāng)然你可以把文件的修改時(shí)間放到緩存中,這樣也會(huì)加到了內(nèi)存使用量。

2. 在HTML靜態(tài)頁面中用不了

3. 如果你們公司是如下的部署發(fā)布方式(我們公司就是這樣),則會(huì)失效。每次發(fā)布,不是直接覆蓋之前的WEB目錄,運(yùn)維的為的發(fā)布方便,要求每次發(fā)布直接給他們1個(gè)war包,他們會(huì)把之前WEB目錄整個(gè)刪除,然后上傳現(xiàn)在的war包,這樣就導(dǎo)致程序運(yùn)行后,所有文件的***修改時(shí)間都是解壓war的時(shí)間。

分享自己項(xiàng)目中的處理方案:

為了解決上面討論過的問題,在下寫了1個(gè)如下的組件,組件中根據(jù)我們自己的實(shí)際情況使用了文件大小來做為文件的版本號(hào),雖然在文件修改很小(比如把字符a改成b),可能文件大小并沒有變,導(dǎo)致版本號(hào)也不會(huì)變。

但這種機(jī)率還是非常低的。當(dāng)然如果你覺的使用文件修改時(shí)間作為版本號(hào)適合你,只需要修改一行代碼就行,下面看下這個(gè)組件的處理流程(本來想用流程圖表達(dá),***還是覺的文字來的直白寫):

1. 程序啟動(dòng)(contextInitialized)

2. 搜索程序目錄下的所有merge.txt文件,根據(jù)merge.txt文件的配置合并文件, merge.txt文件實(shí)例如下:

# 文件合并配置文件,多個(gè)文件以|隔開,以/開頭的表示從根目錄開始,

# 空格之后的文件名表示合并之后的文件名

# 把1,2,3合并到all文件中

1.js|2.js|3.js all.js

#合并CSS

/css/mian.css|/css/common.css all.css

3. 搜索程序目錄下所有JS,CSS文件(包括合并后的),每個(gè)文件都?jí)嚎s后生成對(duì)應(yīng)的1個(gè)新文件。

4. 搜索程序目錄下所有JSP,html文件,把所有JS,css的引用代碼改成壓縮后并加了版本號(hào)的引用。

實(shí)例:

實(shí)例的文件結(jié)構(gòu)如下圖:

高性能WEB開發(fā)怎么實(shí)現(xiàn)JS、CSS的合并壓縮

看JSP原始代碼(程序運(yùn)行前):

<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> <% boolean isDev = false;  // 是否開發(fā)環(huán)境%> <html>     <head>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <title>JSP Page</title>         <% if(isDev){ %>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.4.2.js"></script>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/1.js"></script>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/2.js"></script>         <link type="text/css" rel="stylesheet" href="<%=request.getContextPath() %>/css/1.css" />         <link type="text/css" rel="stylesheet" href="<%=request.getContextPath() %>/css/2.css" />         <% }else{ %>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.4.2.js"></script>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/all.js"></script>         <link type="text/css" rel="stylesheet"  href="<%=request.getContextPath() %>/css/all.css" />         <% } %>     </head>     <body>         <h2 class="c1">Hello World!</h2>     </body> </html>

程序運(yùn)行后JSP的代碼:

<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%      boolean isDev = false;  // 是否開發(fā)環(huán)境  %> <html>     <head>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <title>JSP Page</title>         <% if(isDev){ %>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.4.2-3gmin.js?99375"></script>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/1-3gmin.js?90"></script>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/2-3gmin.js?91"></script>         <link type="text/css" rel="stylesheet" href="<%=request.getContextPath() %>/css/1-3gmin.css?35" />         <link type="text/css" rel="stylesheet" href="<%=request.getContextPath() %>/css/2-3gmin.css?18" />         <% }else{ %>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.4.2-3gmin.js?99375"></script>         <script type="text/javascript" src="<%=request.getContextPath() %>/js/all-3gmin.js?180"></script>         <link type="text/css" rel="stylesheet"  href="<%=request.getContextPath() %>/css/all-3gmin.css?53" />         <% } %>     </head>     <body>         <h2 class="c1">Hello World!</h2>     </body> </html>

加3gmin后綴的文件全部是程序啟動(dòng)時(shí)自動(dòng)生成的。

“高性能WEB開發(fā)怎么實(shí)現(xiàn)JS、CSS的合并壓縮”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

當(dāng)前名稱:高性能WEB開發(fā)怎么實(shí)現(xiàn)JS、CSS的合并壓縮
文章出自:http://aaarwkj.com/article2/jeggoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
91老熟女露脸嗷嗷叫| 女人天堂网av免费看| 婷婷中文字幕在线视频| 亚洲女优中文字幕在线免费| 国产精品三级一区二区三区| 在线午夜免费视频观看| 日韩女优中文字幕在线播放| 久久综合激情亚洲欧美专区| 国产亚洲加勒比久久精品| 好色人妻在线播放中文字幕| 国产成人+亚洲欧洲综合| 成人国产午夜福利网| 黄片色呦呦视频免费看| 精品一区二区三区高清| 国产精品一区二区毛卡片| 国产农村妇女一区二区三区 | 免费看夫妻性生活视频| 色91精品在线观看剧情| 91这里只有精品在线观看| 日韩黄色成人免费片子| 懂色粉嫩蜜臀久久一区二区| 亚洲人妻在线一区二区三区 | 国产三级三级三级三级三级| 亚洲三级伦理在线视频| 天天操天天日天天射夜夜爽| 亚洲一区二区视频在线观看免费| 护士一级特黄特色大片| 亚洲国产视频不卡一区| 熟女亚洲一区精品久久| 成人中文字幕av电影| 国产夫妻性生活视频播放| 不卡的av中文字幕在线播放| 日韩二区三区在线视频| 国产91九色视频在线| 黄色国产传媒在线播放| 日韩一区二区三级电影| 色哟哟网站一区二区精品久久| 亚洲一区二区日本乱码| 欧美在线免费一级黄片| 九九热精品视频美谷朱里| 日本欧美一区中文字幕|