国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

提高程序運行速度 讓Ext JS華而又實

開發 前端
Ext JS雖然有著華麗的界面,但是真正使用過的人才知道,它運行起來的速度是讓人抓狂的,而導致速度慢的重要原因,就是JavaScript的加載,這里我們介紹幾種方法,來提高Ext JS的運行速度,盡管不能完全解決,但對于程序還是很有幫助的。

Ext JS雖然有著華麗的界面,但是真正使用過的人才知道,它運行起來的速度是讓人抓狂的,而導致速度慢的重要原因,就是JavaScript的加載。Ext JS的全部JavaScript是比較大的,一個ext-all-debug.js就達2m多,它的壓縮版也達600多k,這對于在網速不太快的時,下載JavaScript就得漫長的等待。

51CTO推薦閱讀:應用最廣的十大Javascript框架

其中日歷任務控件,JavaScript多達四五個,每個JavaScript大小都達70多k,盡管我們采用了后加載的方式,則當用戶點擊我的任務功能時,才下載該JavaScript,但這樣仍然很慢,因為下載的JavaScript很慢,鑒于此,在互聯網上使用類似Joffice類似的程序,速度會使很多開發商不敢選用Ext JS作為開發技術。我們可以從以下幾種方法來提高應用程序的運行速度:

一.前期盡量少加載JavaScript

這點在Joffice中有比較好的運用,采用的是由ScriptMgr.load方法來完成,加載完成后,其會在body中插入一個DIV,只要當前頁面不被刷新,下次再訪問該功能時,不需要再加載JavaScript。實例代碼:

  1. view sourceprint?01 function $ImportJs(viewName,callback) {     
  2. var b = document.getElementById(viewName+'-hiden');       
  3.  
  4.  if (b != null) {       
  5.  
  6.       var view = eval('new ' + viewName + '()');       
  7.  
  8.      callback.call(this, view);       
  9.  
  10.  } else {       
  11.  
  12.       var jsArr = eval('App.importJs.' + viewName);       
  13.  
  14.      if(jsArr==undefined){       
  15.  
  16.           var view = eval('new ' + viewName + '()');       
  17.  
  18.           callback.call(this, view);       
  19.  
  20.          return ;       
  21.  
  22.      }       
  23.  
  24.       ScriptMgr.load({       
  25.  
  26.                   scripts : jsArr,       
  27.  
  28.                   callback : function() {       
  29.  
  30.                              
  31.  
  32.                      Ext.DomHelper.append(document.body,"<div id='"     
  33.  
  34.                                               + viewName       
  35.  
  36.                                               + "-hiden' style='display:none'></div>");       
  37.                       var view = eval('new ' + viewName + '()');       
  38.  
  39.                       callback.call(this, view);       
  40.  
  41.                   }       
  42.  
  43.       });       
  44.  
  45.  }  

 

#p#

二.用Gzip進行JavaScript的超強壓縮

Gzip的官方網址

http://www.gnu.org/software/gzip/

Gzip的使用很簡單

解壓至某個目錄,會看到有一個Gzip.exe文件,然后在命令窗口進入該目錄,執行:

gzip ext-all.js

ext-all.js馬上變成為ext-all.js.gz。大小從原來600多k搖身一變成了160多k,簡直壓細小很多。這回下載速度就非常快了。那么瀏覽器能否解析這種壓縮文件?答案是肯定的,前提是告訴瀏覽器,這種文件需要解壓,然后再執行,解壓的過程由瀏覽器來執行。那么應用程序如何告訴瀏覽器,該文件需要解壓呢,這得由服務器通過Http的Header指令來進行。在JOffice中,就是通過Filter來進行的。

1.把ext.all.js.gz文件名改為ext.all.gzjs,Filter等一下就會攔截這種文件的訪問。

2.寫一個Filter,完成向Header添加指令。

  1. view sourceprint?01 package com.htsoft.core.web.filter;       
  2.  
  3.     import java.io.IOException;       
  4.  
  5.      import java.util.HashMap;       
  6.  
  7.      import java.util.Iterator;       
  8.  
  9.      import java.util.Map;       
  10.  
  11.      import javax.servlet.Filter;       
  12.  
  13.      import javax.servlet.FilterChain;       
  14.  
  15.     import javax.servlet.FilterConfig;       
  16.  
  17.      import javax.servlet.ServletException;    
  18.      
  19.      import javax.servlet.ServletRequest;       
  20.  
  21.      import javax.servlet.ServletResponse;       
  22.  
  23.      import javax.servlet.http.HttpServletRequest;       
  24.  
  25.      import javax.servlet.http.HttpServletResponse;       
  26.  
  27.              
  28.  
  29.      public class GzipJsFilter implements Filter {       
  30.  
  31.           Map headers = new HashMap();       
  32.  
  33.          public void destroy() {       
  34.  
  35.           }       
  36.  
  37.          public void doFilter(ServletRequest req, ServletResponse res,       
  38.  
  39.                  FilterChain chain) throws IOException, ServletException {       
  40.  
  41.              if(req instanceof HttpServletRequest) {       
  42.  
  43.                   doFilter((HttpServletRequest)req, (HttpServletResponse)res, chain);       
  44.  
  45.              }else {       
  46.  
  47.                   chain.doFilter(req, res);       
  48.  
  49.               }       
  50.  
  51.           }    
  52.      
  53.          public void doFilter(HttpServletRequest request,       
  54.  
  55.                   HttpServletResponse response, FilterChain chain)       
  56.  
  57.                  throws IOException, ServletException {       
  58.  
  59.                  request.setCharacterEncoding("UTF-8");       
  60.  
  61.                  for(Iterator it = headers.entrySet().iterator();it.hasNext();) {       
  62.  
  63.                       Map.Entry entry = (Map.Entry)it.next();       
  64.  
  65.                       response.addHeader((String)entry.getKey(),(String)entry.getValue());       
  66.  
  67.                   }       
  68.                  chain.doFilter(request, response);       
  69.  
  70.           }       
  71.  
  72.              
  73.  
  74.          public void init(FilterConfig config) throws ServletException {       
  75.  
  76.               String headersStr = config.getInitParameter("headers");       
  77.  
  78.               String[] headers = headersStr.split(",");       
  79.  
  80.              for(int i = 0; i < headers.length; i++) {       
  81.  
  82.                  String[] temp = headers[i].split("=");       
  83.  
  84.                  this.headers.put(temp[0].trim(), temp[1].trim());       
  85.  
  86.               }       
  87.  
  88.           }       
  89.      }   
  90.  
  91.       
  92. 3.在WEB.xml 文件中,添加以下配置:  
  93.  
  94. view sourceprint?01 <filter>         
  95.  
  96.       <filter-name>GzipJsFilter</filter-name>         
  97.  
  98.       <filter-class>com.htsoft.core.web.filter.GzipJsFilter</filter-class>         
  99.  
  100.       <init-param>         
  101.  
  102.           <param-name>headers</param-name>         
  103.  
  104.           <param-value>Content-Encoding=gzip</param-value>         
  105.  
  106.       </init-param>       
  107.  
  108. </filter>       
  109.  
  110. <filter-mapping>       
  111.  
  112. <filter-name>GzipJsFilter</filter-name>       
  113.  
  114. <url-pattern>*.gzjs</url-pattern>       
  115.  
  116. lt;/filter-mapping>       
  117.  
  118. <servlet-mapping>  

4.在index.jsp中引入該壓縮文件:

  1. <script type="text/javascript" src="<%=request.getContextPath()%>/ext3/ext-all.gzjs"></script> 
  2.  

可以看到瀏覽器解壓后,其代碼是一樣的:

大家可以看到以上,這塊是在外網使用的,其速度是比較快的。當然,瀏覽器解壓這個文件需要一點時間,不過在本地解壓是非??斓模梢圆挥霉堋km說不能完全解決其速度問題,但是還是能有所幫助。

原文地址:http://www.cnblogs.com/single1970/archive/2010/08/19/Extjs.html

【編輯推薦】

  1. 移花接木 實例講解Ext JS控件的擴展
  2. Ext JS + jQTouch + Raphael = Sencha
  3. 應用最廣的十大Javascript框架
  4. JavaScript框架的選擇標準
責任編輯:王曉東 來源: 博客園
相關推薦

2018-09-19 15:46:51

編程語言Python編譯器

2018-03-09 10:15:00

Linux應用程序運行速度

2020-04-30 21:25:33

Python 函數程序員

2018-08-02 16:17:34

Python 開發編程語言

2019-09-23 14:01:57

iPhoneA13測試

2009-08-11 09:10:26

Windows 7系統提速

2015-11-16 11:53:06

程序員效率加班

2012-10-24 09:40:46

網絡優化系統優化

2025-03-17 03:00:00

C#性能并行處理

2020-12-15 06:44:14

程序運行速度

2009-02-25 08:47:42

MacSafari4

2021-03-07 22:12:04

Windows 10Windows微軟

2011-01-12 11:22:24

微軟認證

2010-01-20 13:19:01

VB.NET錯誤處理

2010-04-12 10:01:43

Windows 7運行速度

2024-09-27 08:35:33

數組JavaScript性能

2018-06-27 09:00:00

Linux運行速度CPU信息

2009-06-18 12:21:07

javascriptdom

2016-02-22 09:27:18

2010-05-10 13:21:16

Windows 7系統日志
點贊
收藏

51CTO技術棧公眾號

亚洲激情图片一区| 久久久久久久久久久久久久久久久久av| 国产一区二区三区91| 99久久精品免费看| 久久九九全国免费精品观看| 欧美乱做爰xxxⅹ久久久| 精品国模一区二区三区| 日本无删减在线| 亚洲欧美bt| 日韩一级片在线观看| 美乳视频一区二区| 欧美黑人猛交的在线视频| 日本免费在线视频不卡一不卡二| 精品日韩一区二区| 超级碰在线观看| 日韩最新av| 亚洲免费色视频| 91丨九色丨国产| 性xxxxfjsxxxxx欧美| 天天做天天摸天天爽国产一区| 久久国产日韩欧美| 亚洲天堂av影院| 99re热这里只有精品免费视频| 欧美男生操女生| 2020中文字字幕在线不卡| 国产在线不卡一区| 亚洲成人性视频| 亚洲一区二区三区毛片| 老司机在线视频二区| 国产一区在线看| 成年人免费观看的视频| 精品视频在线观看网站| 天天操天天干天天综合网| 97在线影院| 加勒比av一区二区| 97色伦亚洲国产| av在线播放免费| 婷婷成人影院| 国产福利一区二区| 中文字幕亚洲一区二区av在线| 在线播放不卡| 亚洲女成人图区| 福利视频网站| 国产精品毛片| 欧美高清在线播放| 午夜免费视频在线国产| 久久这里只有精品视频网| 成人免费黄色网| 嗯啊主人调教在线播放视频| 国产精品麻豆99久久久久久| 欧美精品一区二区三区久久| 精品成人18| 午夜精品久久久久久久99黑人 | 日本亚州欧洲精品不卡| 午夜精品久久久久久久久久久久| 国产一区网站| 久久福利电影| av成人免费在线观看| 亚洲伊人久久综合| 在线午夜精品| 日韩av成人在线观看| 欧美aaa视频| 欧美国产日韩中文字幕在线| 999精品色在线播放| 国产一区二区黄| 日本在线免费网| 亚洲欧美一区二区三区情侣bbw| 成人动漫av| 日韩欧美美女一区二区三区| 一个人看的免费网站www视频| 久久66热偷产精品| 99re在线视频上| 林ゆな中文字幕一区二区| 亚洲精品二三区| 日本中文字幕在线播放| 亚洲欧美日韩精品久久亚洲区| 麻豆精品少妇| 欧美三级华人主播| 1区2区3区精品视频| 成人在线app| 亚洲综合成人网| 制服丝袜av成人在线看| 免费看污污网站| 老鸭窝一区二区久久精品| 99在线观看| 99re热视频这里只精品| 日本大片在线观看| 亚洲美女视频在线观看| 91cn在线观看| 在线一区二区三区| 在线视频国产三级| 欧美激情日韩| 国产精品日韩欧美大师| 九九免费精品视频在线观看| 久久久久久久久久久免费| 四虎成人av| 国产l精品国产亚洲区久久| 国产91精品一区二区麻豆网站 | 欧美成人第一区| 久久理论电影网| 免费在线成人av电影| 国产欧美一区二区三区网站| 免费日韩中文字幕| 久久久天堂av| hd国产人妖ts另类视频| 欧美一区二区三区视频| 日本a在线播放| 欧美在线综合视频| 欧美一区 二区| 97国产一区二区精品久久呦 | 最新国产露脸在线观看| 国产日韩欧美中文在线播放| 天堂美国久久| 国产精品污www一区二区三区| 韩国亚洲精品| 日韩精品一区二区三区色偷偷| 青青草97国产精品免费观看| 色琪琪免费视频网站| 欧美成人久久久| 日韩影片在线观看| 青青视频免费在线观看| 欧美电影一区二区三区| 亚洲综合色网| 日韩一本精品| 欧美三级三级三级| 国产精品一二三产区| 国产精品亚洲不卡a| 亚洲小说欧美激情另类| 黄色毛片在线看| 日韩精品中文字幕有码专区| 亚洲国产91视频| 国产精品成人国产乱一区 | 亚洲日韩中文字幕| 免费成人你懂的| 国产黄色一级网站| 亚洲观看高清完整版在线观看 | 久久中国妇女中文字幕| 丁香婷婷综合网| 黄网站app在线观看下载视频大全官网 | 午夜免费性福利| 91po在线观看91精品国产性色 | 亚洲综合一区二区三区| 91欧美极品| 4444kk亚洲人成电影在线| 一区二区三区国产精品| 中国av一区| 视频在线99re| 久久精品欧美日韩| 国产系列电影在线播放网址| 精品粉嫩aⅴ一区二区三区四区| 亚洲精品在线影院| www.一区二区.com| 伊人一区二区三区| 成人黄色av| 红桃一区二区三区| 亚洲精品一区二区三区婷婷月| 成人午夜看片网址| 欧美中文高清| 中文字幕伊人| 蜜桃av噜噜一区二区三| 亚洲午夜未满十八勿入免费观看全集 | 肉丝袜脚交视频一区二区| 欧美精品久久久久久久自慰| 亚洲自拍偷拍av| 欧美精品一级| 91破解版在线观看| 男女高潮又爽又黄又无遮挡| 欧美亚洲日本国产| 国产麻豆一区二区三区| 国产在线精品一区| 99精品久久99久久久久| 在线观看视频一区二区三区| 久久99精品国产99久久| 日韩三级免费观看| 处破女av一区二区| 国产免费久久| 男人天堂亚洲| 日本在线观看免费视频| 国产在线精品一区免费香蕉| 欧美一区二视频| www.66久久| 午夜精品视频一区二区三区在线看| www国产无套内射com| 欧美激情xxxxx| 精品视频在线免费看| 成人福利视频在线看| 色网站在线看| mm131午夜| 欧美高清视频不卡网| 国产成人精品免费一区二区| 亚洲免费成人av在线| 亚洲91av| 国产美女在线免费观看| 日日骚一区二区网站| 久久免费国产精品1| 99久久99久久精品免费观看| 国产精品黑丝在线播放| 欧美美女日韩| 国产又爽又黄ai换脸| 91精品成人久久|