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左右.加上好的界面,怎么不能比一个常规网页?呵呵
压缩前
压缩后