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

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

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

    無憂無鹵

    鳥在籠中,恨關(guān)羽不能張飛;人處世上,要八戒更需悟空

    關(guān)于javascript 壓縮


    以下轉(zhuǎn)自 http://blog.csdn.net/lvyuanfang/archive/2007/10/27/1849387.aspx


    用yuicompressor和Ant壓縮Ext的CSS文件

    yuicompressor是YUI的Javascript和CSS壓縮工具,下載地址:http://developer.yahoo.com/yui/compressor/

    使用Ext之后,只能導(dǎo)入ext-all.css或者一個個的導(dǎo)入需要的css(太麻煩),如果用到aero等風(fēng)格,還得導(dǎo)入xtheme- aero.css,總下載大小為ext-all.css+xtheme-aero.css=58k+16k=76k,如果一個個導(dǎo)入僅用到的css,又要 多次http請求,本來Ext幾百K的大小就讓人擔(dān)憂性能,再加上76k的css文件,瀏覽器肯定載入更慢了。。
    Ext自帶的css源文件,除了ext-all.css之外都不是壓縮的。考慮用yuicompressor來壓縮用到的css文件,并用Ant將壓縮過 的css文件合并為一個文件。這里所說的方法同樣可以用于javascript的壓縮,yuicompressor支持對javascrip和css文件 的壓縮。

    <project name="..." default="..." basedir=".">
        ...
        <!-- yuicompressor.jar的引用,使用最新的版本2.2.5 -->
        <property name="yuicompressor" value="tools/yuicompressor-2.2.5.jar" />

        ...
        <!-- 壓縮并連結(jié)用到的ext的css文件 -->
        <target name="compress-ext-css">
            <!--Ext CSS樣式目錄-->
            <property name="css.ext" value="WebRoot/css/ext" />
            <!-- 刪除之前生成的已壓縮css文件 -->
            <delete>
                <fileset dir="${css.ext}">
                    <include name="*-m.css" />
                    <include name="ext-all.css" />
                </fileset>
            </delete>
            <!-- 使用java命令調(diào)用yuicompressor.jar,就是用java命令執(zhí)行yuicomprossor.jar -->
            <!-- parallel="false":對fileset中的每個文件都執(zhí)行一次executable參數(shù)的命令 -->
            <!-- dest="${css.ext}":命令執(zhí)行目錄 -->
            <apply executable="java" parallel="false" verbose="true" dest="${css.ext}">
                <!-- 要壓縮的css文件 -->
                <fileset dir="${css.ext}">
                    <include name="fonts-min.css" />
                    <include name="reset-min.css" />
                    <include name="core.css" />
                    <include name="tree.css" />
                    <include name="tabs.css" />
                    <include name="toolbar.css" />
                    <include name="button.css" />
                    <include name="basic-dialog.css" />
                    <include name="layout.css" />
                    <include name="xtheme-aero.css" />
                </fileset>
                <arg line="-jar" />
                <arg path="${yuicompressor}" />
                <arg value="-o" />
                <targetfile />
                <!-- 每執(zhí)行一次命令的輸出文件為*-m.css,比如要壓縮文件為tabs.css,則生成的壓縮文件為tabs-m.css -->
                <mapper type="glob" from="*.css" to="*-m.css" />
            </apply>
            <!-- 以上動作相當(dāng)于執(zhí)行下列命令:
                  java -jar yuicompressor-2.2.5.jar -o fonts-min-m.css fonts.css
                  java -jar yuicompressor-2.2.5.jar -o reset-min-m.css reset.css
                  java -jar yuicompressor-2.2.5.jar -o core-m.css core.css
                  java -jar yuicompressor-2.2.5.jar -o tree-m.css tree.css
                  java -jar yuicompressor-2.2.5.jar -o tabs-m.css tabs.css
                  java -jar yuicompressor-2.2.5.jar -o toolbar-m.css toolbar.css
                  java -jar yuicompressor-2.2.5.jar -o basic-dialog-m.css basic-dialog.css
                  java -jar yuicompressor-2.2.5.jar -o layout-m.css layout.css
                  java -jar yuicompressor-2.2.5.jar -o xtheme-aero-m.css xtheme-aero.css
            -->
            <!-- 用Ant的concat動作將生成的壓縮css文件連結(jié)成一個文件 -->
            <!-- fixlastline="true":每個壓縮文件在最后生成的文件中用換行來分割,即每個*-m.css在生成的ex-all.css中占一行。如果 用concat連結(jié)壓縮的js文件,這個參數(shù)一定要加上,否則連結(jié)后的js文件可能運(yùn)行錯誤 -->
            <concat destfile="${css.ext}/ext-all.css" fixlastline="true">
                <fileset dir="${css.ext}">
                    <include name="*-m.css" />
                </fileset>
            </concat>
        </target>

    </project>

     


    本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/lvyuanfang/archive/2007/10/27/1849387.aspx


    以下轉(zhuǎn)自 (badqiu)http://badqiu.javaeye.com/blog/37176 

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

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

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

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

    1.將prototype.js通過gzip.exe壓縮保存成prototype.gzjs
    2.設(shè)置header,我編寫了一個簡單的AddHeadersFilter來將所有以gzjs結(jié)尾的文件增加設(shè)置header Content-Encoding=gzip
    web.xml中的配置
    Java代碼 復(fù)制代碼
    1. <filter>   
    2.     <filter-name>AddHeaderFilter</filter-name>   
    3.     <filter-class>   
    4.         badqiu.web.filter.AddHeaderFilter   
    5.     </filter-class>   
    6.     <init-param>   
    7.         <param-name>headers</param-name>   
    8.         <param-value>Content-Encoding=gzip</param-value>   
    9.     </init-param>   
    10. </filter>   
    11.   
    12. <filter-mapping>   
    13.     <filter-name>AddHeaderFilter</filter-name>   
    14.     <url-pattern>*.gzjs</url-pattern>   
    15. </filter-mapping>  


    測試prototype.js是否正常的代碼
    1. <html>   
    2. <head>   
    3. <!-- type="text/javascript"不可少,有些瀏覽器缺少這個不能運(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.     <!-- 測試prototype的方法是否正常-->   
    11.     alert($F('username'))   
    12. </script>   
    13. </body>   
    14. </html>  


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

    二.相關(guān)壓縮率數(shù)據(jù)
    1. prototype.js 1.5.0_rc0原始大小56KB,未經(jīng)任何處理直接使用gzip壓縮為12KB,總壓縮率79%
    2. 通過js壓縮工具壓縮過的protytype.js為20KB,使用gzip壓縮為10KB,總壓縮率為83%
    3. 實際項目中的多個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.tkk7.com/Files/badqiu/gziptest.rar

    posted on 2009-06-10 17:38 beyond 閱讀(849) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    <2009年6月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆檔案

    相冊

    搜索

    最新評論

    • 1.?re: 近期任務(wù)
    • 大哥 等著你的drools5翻譯呢 drools4把我搞死了 如果你有關(guān)于drools4的心得的話請指教 感覺自己使用的不是很好 望賜教 QQ:53816565 謝謝
    • --sunnidy
    • 2.?re: Mysql遷移到Oracle
    • 不錯,看樣子支持大多數(shù)數(shù)據(jù)庫遷移到oracle,不知道是否支持從oracle轉(zhuǎn)出?
    • --FastUnit

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成网站在线观看播放青青| 久久亚洲私人国产精品| 最新亚洲卡一卡二卡三新区| 91精品国产免费入口| 亚洲国产一区在线| 久久99国产综合精品免费| 亚洲日本一区二区三区| 日韩精品无码免费一区二区三区 | 亚洲国产V高清在线观看| 亚洲国产AV无码一区二区三区| 成年在线观看免费人视频草莓| 亚洲精品福利你懂| 国产成人综合久久精品免费| 国产亚洲视频在线| 亚洲乱码中文字幕手机在线| a视频在线免费观看| 亚洲国产精品人久久| 99久久久国产精品免费无卡顿| 亚洲AV无码精品蜜桃| 国产精品国产免费无码专区不卡| 在线观看亚洲精品专区| 中文字幕亚洲专区| 91精品国产免费久久国语蜜臀| 亚洲国产日韩在线一区| 成年女人永久免费观看片| 老司机福利在线免费观看| 亚洲欧洲日产国码av系列天堂| 亚洲电影免费在线观看| 亚洲国产精品精华液| 久久久久国产成人精品亚洲午夜| 久久成人无码国产免费播放| 亚洲第一男人天堂| 中文字幕亚洲不卡在线亚瑟| 57pao一国产成视频永久免费| 亚洲丁香婷婷综合久久| 亚洲男人的天堂www| 女人18毛片a级毛片免费| 久久久精品视频免费观看 | 久久亚洲AV午夜福利精品一区| 精品福利一区二区三区免费视频 | 久久国产精品亚洲综合|