配gzip的过滤器进行压缩解决表单加载慢问题
2024-09-04 14:20:03
一个客户的表单上字段超过五百,经浏览器的调试器发现主要问题是从服务器取数据花费了大量时间,下载内容大小约1.2M,下载时间在10s左右,导致样式加载完大约在17s左右(不清除浏览器缓存)。最终考虑利用gzip压缩来解决数据量大的问题。
web.xml配置过滤器:
<filter>
<filter-name>Compress</filter-name>
<filter-class>weaver.filter.GZIPFilter</filter-class>
</filter> <filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
过滤器代码:
package weaver.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 doFilter(ServletRequest paramServletRequest, ServletResponse paramServletResponse, FilterChain paramFilterChain)
throws IOException, ServletException
{
if ((paramServletRequest instanceof HttpServletRequest)) {
HttpServletRequest localHttpServletRequest = (HttpServletRequest)paramServletRequest;
HttpServletResponse localHttpServletResponse = (HttpServletResponse)paramServletResponse;
String str = localHttpServletRequest.getHeader("accept-encoding");
if ((str != null) && (str.indexOf("gzip") != -1))
{
GZIPResponseWrapper localGZIPResponseWrapper = new GZIPResponseWrapper(localHttpServletResponse); paramFilterChain.doFilter(paramServletRequest, localGZIPResponseWrapper);
localGZIPResponseWrapper.finishResponse();
return;
}
paramFilterChain.doFilter(paramServletRequest, paramServletResponse);
}
} public void init(FilterConfig paramFilterConfig)
{
} public void destroy()
{
}
}
经测试,表单速度加载提升一倍,客户表示认可。
最新文章
- 升级win8.1后mysql服务不能启动的问题
- 七、L2CAP
- HTML 学习笔记 CSS样式(链接)
- WPF 实现QQ抖动
- atoi、stoi、strtoi区别
- U盘启动盘安装Win7/9/10系统攻略
- 老李分享:《Linux Shell脚本攻略》 要点(二)
- 关于SpringMVC中text/plain的编码导致的乱码问题解决方法
- hdu 6045 Is Derek lying?(思维推导)
- vxWorks下dosFs文件系统的创建
- Swift基础之侧滑Cell显示操作按钮
- matlab 加根号
- 第60章 设备流交互服务 - Identity Server 4 中文文档(v1.0.0)
- DAPP 开发直通车-如何基于NEL 轻钱包来开发DAPP
- centos 7 常用工具篇
- VB 半透明窗体
- 关于Linux MongoDB的安装
- Mybatis关联查询之一对多和多对一XML配置详解
- const修饰指针时应注意的问题
- Python学习--14 序列化