博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Easyui 页面訪问慢解决方式,GZIP站点压缩加速优化
阅读量:4613 次
发布时间:2019-06-09

本文共 3936 字,大约阅读时间需要 13 分钟。

1. 静态资源压缩
GZIP是站点压缩加速的一种技术,对于开启后能够加快我们站点的打开速度。原理是经过server压缩,client浏览器高速解压的原理,能够大大降低了站点的流量。

详细代码能够參加的实现;

通过资源压缩拦截器,降低带宽訪问

參考代码:

/** * JS缓存压缩 * JEECG开源社区 * 论坛:www.jeecg.org * @author  张代浩 */public class GZipFilter implements Filter {	    public void destroy() {    }      /**       * 推断浏览器是否支持GZIP       * @param request       * @return       */      private static boolean isGZipEncoding(HttpServletRequest request){        boolean flag=false;        String encoding=request.getHeader("Accept-Encoding");          //update-begin--Author:JueYue  Date:20140518 for:IE下Excel上传encode为空的bug--------------------        if(encoding!=null&&encoding.indexOf("gzip")!=-1){          flag=true;        }          //update-end--Author:JueYue  Date:20140518 for:IE下Excel上传encode为空的bug--------------------         return flag;      }          public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {        HttpServletResponse resp = (HttpServletResponse) response;        HttpServletRequest req=(HttpServletRequest)request;        if(isGZipEncoding(req)){            Wrapper wrapper = new Wrapper(resp);            chain.doFilter(request, wrapper);            byte[] gzipData = gzip(wrapper.getResponseData());            resp.addHeader("Content-Encoding", "gzip");            resp.setContentLength(gzipData.length);            //静态资源文件缓存机制            //CacheResource(request, response, chain);            ServletOutputStream output = response.getOutputStream();            output.write(gzipData);            output.flush();        } else {            chain.doFilter(request, response);        }            }	public void init(FilterConfig filterConfig) throws ServletException {}        /**     * 提高系统訪问性能,主键缓存     */    public void CacheResource(ServletRequest request, ServletResponse response,            FilterChain chain){    	//1.强转httpservlet,方便调用方法           HttpServletRequest req = (HttpServletRequest) request;          HttpServletResponse res = (HttpServletResponse) response;          //2.获取资源文件名称的URI           String uri = req.getRequestURI();          //3.获得文件扩展名,lastIndexOf(".")+1 获得.最后一次出现的索引的后一位:jpg           uri = uri.substring(uri.lastIndexOf(".")+1);          System.out.println( uri );//測试获取后缀是否正确           //4断对应后缀文件,设定缓存时间           long date = 0;          //System.out.println( new Date().getTime());//測试当前时间用                     //推断URI获取的后缀名是否与JPG相等,不考虑大写和小写           if(uri.equalsIgnoreCase("jpg")){              //读取XML里的JPG配置的參数,这里设定了时间               //获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒               date = System.currentTimeMillis()+5*60*60*1000;          }                    if(uri.equalsIgnoreCase("gif")){              //读取XML里的JPG配置的參数,这里设定了时间               //获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出,由于单位是毫秒               date = System.currentTimeMillis()+5*60*60*1000;          }                    if(uri.equalsIgnoreCase("css")){              //读取XML里的JPG配置的參数。这里设定了时间               //获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒               date = System.currentTimeMillis()+5*60*60*1000;          }                    if(uri.equalsIgnoreCase("js")){              //读取XML里的JPG配置的參数,这里设定了时间               //获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒               date = System.currentTimeMillis()+5*60*60*1000;          }          //设置缓存时间           res.setDateHeader("Expires", date);      }    private byte[] gzip(byte[] data) {        ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(10240);        GZIPOutputStream output = null;        try {            output = new GZIPOutputStream(byteOutput);            output.write(data);        } catch (IOException e) {        } finally {            try {                output.close();            } catch (IOException e) {            }        }        return byteOutput.toByteArray();    }}
2. 静态资源缓存
3. easyui 页面优化
  
   

转载于:https://www.cnblogs.com/jzssuanfa/p/6863531.html

你可能感兴趣的文章
概念——SOAP(简单对象访问协议)
查看>>
Docker 0x03:Install Docker
查看>>
POJ3421 X-factor Chains
查看>>
后缀表达式
查看>>
伪随机数生成器
查看>>
[转载]:合并两个已排序好的int数组,并排序返回c#实现
查看>>
(剑指Offer)面试题35:第一个只出现一次的字符
查看>>
MEF: MSDN 杂志上的文章(13) 重新组合 【暂时用不到,以后再看】
查看>>
iframe嵌入第三方视频链接自动播放
查看>>
以jar包方式启动
查看>>
contentType
查看>>
IBM简单提问。。。捂脸哭。。神马都不记得了。。。
查看>>
jQuery1.9.1--attr,prop与val方法源码分析
查看>>
javascript实现数据结构与算法系列:功能完整的线性链表
查看>>
gdb调试程序
查看>>
javascript 正则表达式
查看>>
MyBatis_01 框架
查看>>
中文写程序,何陋之有?
查看>>
(10)C#之ADO.NET 数据库中的NULL值的插入与读取
查看>>
字典 dict{}
查看>>