日期:2014-05-16 浏览次数:20463 次
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左右.加上好的界面,怎么不能比一个常规网页?呵呵
?
压缩前
?

?
压缩后
