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

详细代码能够參加jeecg高速开发平台的实现;

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

參考代码:

  1. /**
  2. * JS缓存压缩
  3. * JEECG开源社区
  4. * 论坛:www.jeecg.org
  5. * @author 张代浩
  6. */
  7. public class GZipFilter implements Filter {
  8.  
  9. public void destroy() {
  10. }
  11. /**
  12. * 推断浏览器是否支持GZIP
  13. * @param request
  14. * @return
  15. */
  16. private static boolean isGZipEncoding(HttpServletRequest request){
  17. boolean flag=false;
  18. String encoding=request.getHeader("Accept-Encoding");
  19. //update-begin--Author:JueYue Date:20140518 for:IE下Excel上传encode为空的bug--------------------
  20. if(encoding!=null&&encoding.indexOf("gzip")!=-1){
  21. flag=true;
  22. }
  23. //update-end--Author:JueYue Date:20140518 for:IE下Excel上传encode为空的bug--------------------
  24. return flag;
  25. }
  26.  
  27. public void doFilter(ServletRequest request, ServletResponse response,
  28. FilterChain chain) throws IOException, ServletException {
  29. HttpServletResponse resp = (HttpServletResponse) response;
  30. HttpServletRequest req=(HttpServletRequest)request;
  31. if(isGZipEncoding(req)){
  32. Wrapper wrapper = new Wrapper(resp);
  33. chain.doFilter(request, wrapper);
  34. byte[] gzipData = gzip(wrapper.getResponseData());
  35. resp.addHeader("Content-Encoding", "gzip");
  36. resp.setContentLength(gzipData.length);
  37. //静态资源文件缓存机制
  38. //CacheResource(request, response, chain);
  39. ServletOutputStream output = response.getOutputStream();
  40. output.write(gzipData);
  41. output.flush();
  42. } else {
  43. chain.doFilter(request, response);
  44. }
  45.  
  46. }
  47.  
  48. public void init(FilterConfig filterConfig) throws ServletException {}
  49.  
  50. /**
  51. * 提高系统訪问性能,主键缓存
  52. */
  53. public void CacheResource(ServletRequest request, ServletResponse response,
  54. FilterChain chain){
  55. //1.强转httpservlet,方便调用方法
  56. HttpServletRequest req = (HttpServletRequest) request;
  57. HttpServletResponse res = (HttpServletResponse) response;
  58. //2.获取资源文件名称的URI
  59. String uri = req.getRequestURI();
  60. //3.获得文件扩展名,lastIndexOf(".")+1 获得.最后一次出现的索引的后一位:jpg
  61. uri = uri.substring(uri.lastIndexOf(".")+1);
  62. System.out.println( uri );//測试获取后缀是否正确
  63. //4断对应后缀文件,设定缓存时间
  64. long date = 0;
  65. //System.out.println( new Date().getTime());//測试当前时间用
  66.  
  67. //推断URI获取的后缀名是否与JPG相等,不考虑大写和小写
  68. if(uri.equalsIgnoreCase("jpg")){
  69. //读取XML里的JPG配置的參数,这里设定了时间
  70. //获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒
  71. date = System.currentTimeMillis()+5*60*60*1000;
  72. }
  73.  
  74. if(uri.equalsIgnoreCase("gif")){
  75. //读取XML里的JPG配置的參数,这里设定了时间
  76. //获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出,由于单位是毫秒
  77. date = System.currentTimeMillis()+5*60*60*1000;
  78. }
  79.  
  80. if(uri.equalsIgnoreCase("css")){
  81. //读取XML里的JPG配置的參数。这里设定了时间
  82. //获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒
  83. date = System.currentTimeMillis()+5*60*60*1000;
  84. }
  85.  
  86. if(uri.equalsIgnoreCase("js")){
  87. //读取XML里的JPG配置的參数,这里设定了时间
  88. //获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒
  89. date = System.currentTimeMillis()+5*60*60*1000;
  90. }
  91. //设置缓存时间
  92. res.setDateHeader("Expires", date);
  93. }
  94.  
  95. private byte[] gzip(byte[] data) {
  96. ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(10240);
  97. GZIPOutputStream output = null;
  98. try {
  99. output = new GZIPOutputStream(byteOutput);
  100. output.write(data);
  101. } catch (IOException e) {
  102. } finally {
  103. try {
  104. output.close();
  105. } catch (IOException e) {
  106. }
  107. }
  108. return byteOutput.toByteArray();
  109. }
  110.  
  111. }

2. 静态资源缓存
3. easyui 页面优化
  http://www.easyui.info/archives/1435.html
   http://www.360doc.com/content/14/0209/08/9200790_350899585.shtml

Easyui 页面訪问慢解决方式,GZIP站点压缩加速优化的更多相关文章

  1. 把war包放到Tomcat安装文件夹下,不能直接訪问的解决方式

    临床表现: Tomcat启动后首页能訪问(http://localhost:8080/). 将自己写的一个webprojectwar包放到Tomcat安装文件夹下的/webapps以下(比方hello ...

  2. ruby on rails创建的页面訪问很慢

    ruby on rails创建的页面訪问很慢 用rvm安装的ruby1.9.3 解决:cd ~/.rvm/rubies/ruby-1.9.3-p547/lib/ruby/1.9.1/webrick v ...

  3. html5的postmessage实现js前端跨域訪问及调用解决方式

    关于跨域訪问.使用JSONP的方法.我前面已经demo过了.详细见http://supercharles888.blog.51cto.com/609344/856886,HTML5提供了一个很强大的A ...

  4. 利用JS跨域做一个简单的页面訪问统计系统

    事实上在大部分互联网web产品中,我们一般会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便能够在这些统计系统中看到自己站点页面详细的訪问情况.可是有些时候,因为一些特殊情况,我 ...

  5. java 页面传输中文乱码解决方式

    post 中文乱码解决方案 接受数据的时候设置 request.setCharacterEncoding("utf-8");//编码必须和页面编码一致 页面设置 <%@pag ...

  6. 配置NGINX支持中文URL 中文文件名称或文件夹404无法訪问的解决方法

    NGINX不须要象apache那样要单独载入支持中文模块. # cat /etc/sysconfig/i18n  LANG="en_US.UTF-8" SYSFONT=" ...

  7. javascript跨域訪问探索之旅

    需求:         近期工作负责一个互联网应用A(我公司应用)与还有一个互联网应用B进行通讯.通讯的方式是这种:还有一个互联网应用某些表单信息须要从我公司的互联网应用获取.首先用户訪问互联网应用B ...

  8. web集群中经常使用的session同步解决方式及对照

    随着站点的功能越来越多,用户量越来越庞大,单节点模式已经严重不能支撑整个系统的正常运作,轻则用户页面訪问时间越来越慢.重则就会导致整个系统瘫痪.这时候 就须要优化或调整眼下的架构,大部分人就会採用各种 ...

  9. JBOSS部署项目之后,无法通过IP地址訪问,仅仅能通过localhost或者127.0.0.1訪问

    这几天入职到了一家新的公司,然后第一天就開始搭建各种环境.由于原先一直用的是Tomcat容器,然后也是第一次接触JBOSS容器,搭建完之后,在MyEclipse中启动了JBOSS容器,然后想在浏览器中 ...

随机推荐

  1. golang tar gzip 压缩,解压(含目录文件)

    tar是用于文件归档,gzip用于压缩.仅仅用tar的话,达不到压缩的目的.我们常见的tar.gz就是用gzip压缩生成的tar归档文件. go实现tar压缩与解压与zip类似,区别在于tar需要使用 ...

  2. c3p0参数详解

    <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> <property name="acquireIncrement"& ...

  3. vs2017 visual studio2017 密钥 激活码

    企业版Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF 专业版Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH

  4. 【转载】自制4412底板自动进入SD卡更新模块

    转载自迅为论坛:http://www.topeetboard.com参考平台:迅为iTOP-4412开发板 问题如下:在自制的底板上,当SD卡插在板子上开机时,会自动进入Updating模式,如果SD ...

  5. Codeforces_779_D.String Game_(二分)

    D. String Game time limit per test 2 seconds memory limit per test 512 megabytes input standard inpu ...

  6. HDU_1072_Nightmare

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1072 题目描述:矩阵表示迷宫,0表示墙,1表示路,2表示起点,3表示终点,4表示重置炸弹时间(6秒),你需 ...

  7. Java基础(九)--反射

    什么是反射? 在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性 这种动态获取的信息以及动态调用对象的方法的功能称为反射机制. 反射的前 ...

  8. 怎么让Eclipse对html和js代码自动提示

    使用eclipse自带的插件,无需另外安装插件,具体步骤如下1.打开eclipse→Windows→Preferences→Java→Editor→Content Assist修改Auto Activ ...

  9. c# Dictionary 扩展方法

    主要用于接口请求,数据转换 #region Dictionary 扩展方法 public static string getString(this Dictionary<string, stri ...

  10. kubeadmin 安装k8s集群

    系统设置 CentOS Linux release 7.6.1810 (Core) 修改主机名 vim /etc/hostname k8s-master hostname -F /etc/hostna ...