使用gzip压缩extjs文件
程序员文章站
2024-03-13 23:26:22
...
突然奇想想用extjs4做一个外网项目,但是extjs4依赖的文件实在太大,光ext-all.js已经压缩后的都有1.2m,做外网的话速度非常的慢,为了提高速度可以用gzip对文件再进行压缩,最后可以让1.2m的文件压缩成300多k,这样就大大的节省的时间。
1:先使用gzip压缩文件(http://download.****.net/detail/chen2991101/5654201)
把gzip.ext放在一个目录下面,需要压缩的文件也要放在同目录下面,然后在cmd窗口中也要到同样的目录下面输入:“gzip 文件名” 即可,然后把后缀名修改成.gzjs
2:因为压缩过后需要浏览器来来解压,所以需要一个过滤器来添加一个头信息告诉浏览器需要解压
public class GzipFilter implements Filter {
Map headers = new HashMap();
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
if (req instanceof HttpServletRequest) {
doFilter((HttpServletRequest) req, (HttpServletResponse) res, chain);
} else {
chain.doFilter(req, res);
}
}
public void doFilter(HttpServletRequest request,
HttpServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
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>GzipJsFilter</filter-name>
<filter-class>org.mango.crm.filter.GzipFilter</filter-class>
<init-param>
<param-name>headers</param-name>
<param-value>Content-Encoding=gzip</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>GzipJsFilter</filter-name>
<url-pattern>*.gzjs</url-pattern>
</filter-mapping>
最后在html文件中引用压缩后的文件
<script type="text/javascript" src="/resource/extjs/ext-all.js.gzjs"></script>
这样就完成了
上一篇: 【web设计居家必备】迷你图标大集合 web设计居家必备迷你图标大集合
下一篇: 错误集:配置rsync下行同步时:rsync: failed to connect to 192.168.2.4: No route to host (113)
推荐阅读
-
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
-
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
-
Yii2中使用asset压缩js,css文件的方法
-
使用Java生成jpg与压缩图片为jpg文件的代码示例
-
java中GZIP压缩解压类使用实例
-
java中GZIP压缩解压类使用实例
-
windows系统中python使用rar命令压缩多个文件夹示例
-
如何使用gulp压缩图片并监视文件的变化自动进行打包嘞???看这篇就够了!!!
-
linux 下使用gzip压缩与解压文件 博客分类: linux linuxgzip解压压缩
-
使用GZip来压缩传输量 博客分类: java web开发 javaGZip