欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于JavaScript的gzip靜態(tài)壓縮方法

 更新時(shí)間:2007年01月05日 00:00:00   作者:  
一個(gè)頁面減少10KB對于一個(gè)小網(wǎng)站來說,算不上什么,但對于大型站點(diǎn)來說,累計(jì)起來卻是一個(gè)很大的流量......gzip壓縮是一個(gè)有效可行的方法,但需要Apache的支持(Apache與IIS共用一個(gè)端口解決方法)。
  傳統(tǒng)的JS壓縮(刪除注釋,刪除多余空格等)提供的壓縮率有時(shí)還是不盡不意,幸虧現(xiàn)在的瀏覽器都支持壓縮傳輸(通過設(shè)置http header的Content-Encoding=gzip),可以通過服務(wù)器的配置(如apache)為你的js提供壓縮傳輸,或是appfuse中使用的GZipFilter使tomcat也提供這種能力
現(xiàn)在的問題是這種動(dòng)態(tài)的壓縮會導(dǎo)致CPU占用率過高,現(xiàn)在我想到的解決辨法是通過提供靜態(tài)壓縮(就是將js預(yù)先通過gzip.exe壓縮好)

一.下面描述在tomcat中的應(yīng)用

1.將prototype.js通過gzip.exe壓縮保存成prototype.gzjs 2.設(shè)置header,我編寫了一個(gè)簡單的AddHeadersFilter來將所有以gzjs結(jié)尾的文件增加設(shè)置header Content-Encoding=gzip web.xml中的配置 
復(fù)制代碼 代碼如下:
<filter> 
        <filter-name>AddHeaderFilter</filter-name> 
        <filter-class> 
            badqiu.web.filter.AddHeaderFilter 
        </filter-class> 
        <init-param> 
            <param-name>headers</param-name> 
            <param-value>Content-Encoding=gzip</param-value> 
        </init-param> 
    </filter>    <filter-mapping> 
        <filter-name>AddHeaderFilter</filter-name> 
        <url-pattern>*.gzjs</url-pattern> 
    </filter-mapping> 
測試prototype.js是否正常的代碼

復(fù)制代碼 代碼如下:
<html>   
<head>   
<!-- type="text/javascript"不可少,有些瀏覽器缺少這個(gè)不能運(yùn)行,具體已經(jīng)忘記了 -->   
<script src="prototype.gzjs" type="text/javascript"></script>   
</head>   
<body>   
    <input id="username" name="username" value="badqiu"/><br />   
    <input id="email" value="badqiu@gmail.com"/>   
<script>   
    <!-- 測試prototype的方法是否正常-->   
    alert($F('username'))    
</script>   
</body>   
</html> 

在Apache中可以直接通過在httpd.conf增加AddEncoding x-gzip .gzjs來映射.gzjs文件的header

二.壓縮率 

prototype.js 1.5.0_rc0原始大小56KB,未經(jīng)任何處理直接使用gzip壓縮為12KB,總壓縮率79% 
2. 通過js壓縮工具壓縮過的protytype.js為20KB,使用gzip壓縮為10KB,總壓縮率為83%
3. 實(shí)際項(xiàng)目中的多個(gè)js合并成的文件 439KB,直接通過gzip壓縮為85KB,總壓縮率81%

4. 439KB經(jīng)過js壓縮為165KB,再經(jīng)過gzip壓縮為65KB,總壓縮率86%

基本上你都可以忽略js壓縮工具的壓縮率,直接使用gzip壓縮
gzip下載地址 http://www.gzip.org

tomcat的壓縮配置示例下載地址: http://www.blogjava.net/Files/badqiu/gziptest.rar

相關(guān)文章

  • ES10的13個(gè)新特性示例(小結(jié))

    ES10的13個(gè)新特性示例(小結(jié))

    這篇文章主要介紹了ES10的13個(gè)新特性示例(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Javascript實(shí)現(xiàn)基本運(yùn)算器

    Javascript實(shí)現(xiàn)基本運(yùn)算器

    這篇文章主要為大家詳細(xì)介紹了Javascript實(shí)現(xiàn)基本運(yùn)算器的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 原生JS實(shí)現(xiàn)的碰撞檢測功能示例

    原生JS實(shí)現(xiàn)的碰撞檢測功能示例

    這篇文章主要介紹了原生JS實(shí)現(xiàn)的碰撞檢測功能,涉及javascript鼠標(biāo)事件響應(yīng)及頁面圖形坐標(biāo)位置運(yùn)算、檢測相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 基于javascript實(shí)現(xiàn)圖片預(yù)加載

    基于javascript實(shí)現(xiàn)圖片預(yù)加載

    這篇文章主要介紹了javascript圖片預(yù)加載的方法,實(shí)例分析了javascript實(shí)現(xiàn)圖片預(yù)加載的思路,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-01-01
  • JS函數(shù)進(jìn)階之繼承用法實(shí)例分析

    JS函數(shù)進(jìn)階之繼承用法實(shí)例分析

    這篇文章主要介紹了JS函數(shù)進(jìn)階之繼承用法,結(jié)合實(shí)例形式分析了JavaScript函數(shù)繼承相關(guān)定義與使用操作技巧,需要的朋友可以參考下
    2020-01-01
  • 使用cookie繞過驗(yàn)證碼登錄的實(shí)現(xiàn)代碼

    使用cookie繞過驗(yàn)證碼登錄的實(shí)現(xiàn)代碼

    本文通過實(shí)例代碼給大家詳細(xì)介紹了使用cookie繞過驗(yàn)證碼登錄的實(shí)現(xiàn)方法,需要的朋友參考下吧
    2017-10-10
  • javascript的解析執(zhí)行順序在各個(gè)瀏覽器中的不同

    javascript的解析執(zhí)行順序在各個(gè)瀏覽器中的不同

    javascript是一種解釋型語言,它的執(zhí)行是自上而下的。由于各個(gè)瀏覽器對它的理解有所差異,所以我們有必要深入理解js的執(zhí)行順序
    2014-03-03
  • 可能被忽略的一些JavaScript數(shù)組方法細(xì)節(jié)

    可能被忽略的一些JavaScript數(shù)組方法細(xì)節(jié)

    這篇文章主要給大家介紹了一些可能被忽略的JavaScript數(shù)組方法細(xì)節(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • JavaScript中async和await的使用及隊(duì)列詳情

    JavaScript中async和await的使用及隊(duì)列詳情

    這篇文章主要介紹了JavaScript中async和await的使用及隊(duì)列詳情,主要圍繞js中async和await簡單解析展開面試中可能會問到的關(guān)于隊(duì)列的一些場景和知識點(diǎn),需要的朋友可以參考一下
    2022-07-07
  • js中top的作用深入剖析

    js中top的作用深入剖析

    本篇文章主要是對js中top的作用進(jìn)行了深入的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-03-03

最新評論