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

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

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

    paulwong

    GZip壓縮和按需裝載提升Ext Js的性能

    ext-all.js這個文件都有500多k,在頁面中直接引用這個js文件是很不現實的,曾經在一個大的項目中使用這個js,則直接導致頁面半天出不來的后果。于是自己研究了下,目前通過下面的方法來優化提升Ext Js的性能。

    使用JSVM
    JSVM (JavaScript Virtual Machine的縮寫),一個JavaScript基礎框架,sourceforge開源項目,由萬常華(wch3116)于2003年底發起, 目前最新版本是2.05,采用的是 BSD License 授權協議。本身JSVM也提供了JSVM+Ext2的實例,看看就知道怎么在JSVM下加入ext的js庫了。
    我在項目中是這么用的:

    <script type= "text/javascript"  src= "/depporject/comjs/jsvm2/jsre.js"  classpath= "dom2.gzjs;ext2p.gzjs"  modules= "smartloader"  ></script>

    為什么擴展名是gzjs呢,這是使用了gzip壓縮js文件

    使用Gzip壓縮

    gzip壓縮后,ext js文件的大小將只有100k左右。
    只是對gzip壓縮的文件需要提供filter(Java開發),為你的應用提高解壓縮功能,filter的寫法很簡單:

        public   void  doFilter(HttpServletRequest request, 
                HttpServletResponse response, FilterChain chain) 
                 
    throws  IOException, ServletException 
                 
    for (Iterator it = headers.entrySet().iterator();it.hasNext();) 
                    Map.Entry entry 
    = (Map.Entry)it.next(); 
                    response.addHeader((String)entry.getKey(),(String)entry.getValue()); 

                }
     
                chain.doFilter(request, response); 
        }
     

         
    public   void  init(FilterConfig config)  throws  ServletException 
            String headersStr 
    = config.getInitParameter( "headers" ); 
            String[] headers 
    = headersStr.split( "," ); 
             
    for ( int  i =  0 ; i < headers.length; i++
                String[] temp 
    = headers[i].split( "=" ); 
                 
    this .headers.put(temp[ 0 ].trim(), temp[ 1 ].trim()); 
            }
     
        }
     


    web.xml配置

    < filter > 
             
    < filter-name > addHeaderFilter </ filter-name > 
             
    < filter-class >org .common.AddHeaderFilter </ filter-class > 
             
    < init-param > 
                 
    < param-name > headers </ param-name > 
                 
    < param-value > Content-Encoding = gzip </ param-value > 
             
    </ init-param > 
      </ filter > 

    通過以上兩步,整個頁面裝載速度很快了。大家可以試試。
    另外在實際開發中,并不是將ext-all.js全部在jsvm中裝載,只是將常用的ext js代碼歸到一起,由gzip壓縮,然后又jsvm裝載(即ext2p.js,p代表部分),剩下的ext js代碼由jsvm按需裝載。

    posted on 2011-04-21 23:17 paulwong 閱讀(1171) 評論(0)  編輯  收藏 所屬分類: EXTJS


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品无码99在线观看| 无码高潮少妇毛多水多水免费| 四虎永久免费地址在线观看| 亚洲色大成网站www久久九 | 精品熟女少妇aⅴ免费久久| 免费国产美女爽到喷出水来视频| 成人亚洲国产精品久久| 亚洲av手机在线观看| 免费夜色污私人影院网站电影| 少妇亚洲免费精品| 精选影视免费在线 | 亚洲成AV人片在线观看WWW| 91青青国产在线观看免费| 亚洲国产成人精品无码一区二区| 在线观看av永久免费| 337p日本欧洲亚洲大胆人人| 亚洲一区二区三区在线视频 | 亚洲爆乳AAA无码专区| 国产精一品亚洲二区在线播放| 久久免费99精品国产自在现线 | 一级黄色毛片免费看| 亚洲国产精品无码久久久| 国产精品亚洲不卡一区二区三区 | 亚洲神级电影国语版| 亚洲中文字幕无码专区| 67194成是人免费无码| 久久午夜无码免费| 免费一级全黄少妇性色生活片| 亚洲精品免费网站| 亚洲AV无码成人精品区天堂| 成人亚洲网站www在线观看| 野花高清在线观看免费3中文| 免费无码作爱视频| 一级中文字幕乱码免费| 国产亚洲人成在线影院| 亚洲AV无码一区二区三区人| 久久夜色精品国产噜噜亚洲AV| 亚洲熟女一区二区三区| 亚洲国产成人爱av在线播放| 日本不卡高清中文字幕免费| 免费av欧美国产在钱|