<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這個(gè)文件都有500多k,在頁(yè)面中直接引用這個(gè)js文件是很不現(xiàn)實(shí)的,曾經(jīng)在一個(gè)大的項(xiàng)目中使用這個(gè)js,則直接導(dǎo)致頁(yè)面半天出不來的后果。于是自己研究了下,目前通過下面的方法來優(yōu)化提升Ext Js的性能。

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

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

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

    使用Gzip壓縮

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

        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 > 

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

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲一区二区三区偷拍女厕| 亚洲精品免费在线观看| 99在线视频免费观看视频| 亚洲AV无码专区电影在线观看| a级毛片免费网站| 亚洲AV无码一区二区三区国产| 在线亚洲v日韩v| 国产在线观看免费不卡| 亚洲heyzo专区无码综合| 亚洲天堂一区二区| 久久伊人免费视频| 久久精品国产亚洲av日韩| 久久国产色AV免费看| 国产亚洲福利一区二区免费看| 亚洲成av人无码亚洲成av人| 韩国免费三片在线视频| 国产亚洲漂亮白嫩美女在线 | 亚洲?V乱码久久精品蜜桃| 久久夜色精品国产亚洲| 丝袜捆绑调教视频免费区| 久久亚洲免费视频| 99在线精品视频观看免费| 亚洲人成欧美中文字幕| 亚洲AⅤ优女AV综合久久久| 三级黄色免费观看| 亚洲综合男人的天堂色婷婷| 欧美a级成人网站免费| 春暖花开亚洲性无区一区二区| 亚洲一本大道无码av天堂| 99爱在线精品视频免费观看9| 中文字幕无码精品亚洲资源网久久| 国产无遮挡裸体免费视频 | 亚洲图片一区二区| 精品熟女少妇AV免费观看| 免费无码AV一区二区| 亚洲av无码国产精品夜色午夜| 日韩国产免费一区二区三区| 牛牛在线精品免费视频观看| 亚洲国产精品免费视频| 国产精品免费视频一区| 中国内地毛片免费高清|