日期:2014-05-16 浏览次数:20395 次
ExtJs-all.js = 600K,
ExtJs-all.css = 200K.
?
其他累加>1M
?
敢问一下,如何与200K的WEB常规页面对抗速度?..
?
压缩你的ExtJs的JS文件吧.(我用的7zip,压缩成浏览支持的本地解压文件gzip格式)
?
然后写Filter过滤URL请求,解压补到的gzip文件.
?
通常,我把压好的js文件改名为Ext-all.gz.js(压缩默认为Ext-all.js.gz)
?
为了让浏览器识别gzip格式,我们要过滤到这种格式后,响应给浏览器解析时,要家上头文件格式.
?
下面代码:
package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class GzipFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { String url = ((HttpServletRequest)req).getServletPath(); if(url.endsWith(".gz.js")||url.endsWith(".gz.css")){ ((HttpServletResponse)res).setHeader("Content-Encoding", "gzip"); } chain.doFilter(req, res); } public void init(FilterConfig filterConfig) throws ServletException { } }
?web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>gzip-filter</filter-name> <filter-class>filter.GzipFilter</filter-class> </filter> <filter-mapping> <filter-name>gzip-filter</filter-name> <url-pattern>*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
?
好了,快去试试吧.
?
我原本响应ext-all.js为600ms,压缩后文件为170K,响应为47ms,页面大小在200K左右.加上好的界面,怎么不能比一个常规网页?呵呵
?
压缩前
?
?
压缩后