<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    badqiu

    XPer
    隨筆 - 46, 文章 - 3, 評(píng)論 - 195, 引用 - 0
    數(shù)據(jù)加載中……

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

    傳統(tǒng)的JS壓縮(刪除注釋,刪除多余空格等)提供的壓縮率有時(shí)還是不盡不意,幸虧現(xiàn)在的瀏覽器都支持壓縮傳輸(通過(guò)設(shè)置http header的Content-Encoding=gzip),可以通過(guò)服務(wù)器的配置(如apache)為你的js提供壓縮傳輸,或是appfuse中使用的GZipFilter使tomcat也提供這種能力

    現(xiàn)在的問(wèn)題是這種動(dòng)態(tài)的壓縮會(huì)導(dǎo)致CPU占用率過(guò)高,現(xiàn)在我想到的解決辨法是通過(guò)提供靜態(tài)壓縮(就是將js預(yù)先通過(guò)gzip.exe壓縮好)

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

    1.將prototype.js通過(guò)gzip.exe壓縮保存成prototype.gzjs
    2.設(shè)置header,我編寫(xiě)了一個(gè)簡(jiǎn)單的AddHeadersFilter來(lái)將所有以gzjs結(jié)尾的文件增加設(shè)置header Content-Encoding=gzip

    ?1????web.xml中的配置
    ?2?????<filter>
    ?3?????????<filter-name>AddHeaderFilter</filter-name>
    ?4?????????<filter-class>
    ?5?????????????badqiu.web.filter.AddHeaderFilter
    ?6?????????</filter-class>
    ?7?????????<init-param>
    ?8?????????????<param-name>headers</param-name>
    ?9?????????????<param-value>Content-Encoding=gzip</param-value>
    10?????????</init-param>
    11?????</filter>
    12?
    13?????<filter-mapping>
    14?????????<filter-name>AddHeaderFilter</filter-name>
    15?????????<url-pattern>*.gzjs</url-pattern>
    16?????</filter-mapping>

    測(cè)試prototype是否正常的代碼

    ?1?<html>
    ?2?<head>
    ?3?<!--?type="text/javascript"不可少,有些瀏覽器缺少這個(gè)不能運(yùn)行,具體已經(jīng)忘記了?-->
    ?4?<script?src="prototype.gzjs"?type="text/javascript"></script>
    ?5?</head>
    ?6?<body>
    ?7?????<input?id="username"?name="username"?value="badqiu"/><br?/>
    ?8?????<input?id="email"?value="badqiu@gmail.com"/>
    ?9?<script>
    10?????<!--?測(cè)試prototype的方法是否正常-->
    11?????alert($F('username'))
    12?</script>
    13?</body>
    14?</html>


    在Apache httpd中可以直接通過(guò)在httpd.conf增加AddEncoding x-gzip .gzjs來(lái)映射.gzjs文件的header

    二.相關(guān)壓縮率數(shù)據(jù)
    1. prototype.js 1.5.0_rc0原始大小56KB,未經(jīng)任何處理直接使用gzip壓縮為12KB,總壓縮率79%
    2. 通過(guò)js壓縮工具壓縮過(guò)的protytype.js為20KB,使用gzip壓縮為10KB,總壓縮率為83%
    3. 實(shí)際項(xiàng)目中的多個(gè)js合并成的文件 439KB,直接通過(guò)gzip壓縮為85KB,總壓縮率81%
    4. 439KB經(jīng)過(guò)js壓縮為165KB,再經(jīng)過(guò)gzip壓縮為65KB,總壓縮率86%
    基本上你都可以忽略js壓縮工具的壓縮率,直接使用gzip壓縮

    gzip下載地址 http://www.gzip.org
    tomcat的壓縮配置示例下載地址: http://m.tkk7.com/Files/badqiu/gziptest.rar

    posted on 2006-12-04 22:48 badqiu 閱讀(2614) 評(píng)論(2)  編輯  收藏 所屬分類: AJAX

    評(píng)論

    # re: 關(guān)于JavaScript的gzip靜態(tài)壓縮方法  回復(fù)  更多評(píng)論   

    試試這個(gè):
    http://www.xidea.org/webstart/JSA.jnlp


    http://m.tkk7.com/jindw/archive/2007/06/22/125829.html
    2007-08-01 12:30 | 金大為

    # re: 關(guān)于JavaScript的gzip靜態(tài)壓縮方法  回復(fù)  更多評(píng)論   

    我在resin服務(wù)器里面按照你寫(xiě)的這樣寫(xiě)的,可以處理,完全正常。
    但是如果把resin架到IIS下,就處理不了了,如何解決?
    我郵箱pkjcw@sina.com.cn
    2007-08-18 11:36 | Square.pk
    主站蜘蛛池模板: 一区二区三区亚洲| 午夜在线亚洲男人午在线| 在线观看视频免费完整版| 亚洲人成网站免费播放| 亚洲国产午夜福利在线播放| 国产午夜精品久久久久免费视 | 免费无码又爽又刺激高潮| xxxx日本在线播放免费不卡| 中文字幕亚洲综合久久2| 成人免费淫片在线费观看| 久久国产美女免费观看精品 | 亚洲丝袜美腿视频| 最近2019中文字幕免费看最新 | 成人免费无码大片a毛片| 久久精品无码免费不卡| 精品丝袜国产自在线拍亚洲| 久久久无码精品亚洲日韩软件| 国产在线观看麻豆91精品免费 | 一级特黄色毛片免费看| 亚洲系列国产精品制服丝袜第 | 337P日本欧洲亚洲大胆精品| 久久精品夜色国产亚洲av| 日韩一级在线播放免费观看| 久久久久久成人毛片免费看 | 永久在线观看www免费视频| 免费无码国产V片在线观看| 亚洲欧洲另类春色校园小说| 一本色道久久综合亚洲精品高清| 四虎www免费人成| 亚洲成人在线免费观看| www免费插插视频| 无码天堂亚洲国产AV| 亚洲卡一卡2卡三卡4麻豆| 亚洲国产精品va在线播放| 免费乱码中文字幕网站| 免费无码又爽又刺激毛片| 69堂人成无码免费视频果冻传媒| a级毛片毛片免费观看久潮| 免费福利在线观看| 色窝窝亚洲AV网在线观看| 亚洲乱码在线视频|