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

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

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

參考代码:

/**
* 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 页面优化
  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. 12Microsoft SQL Server 索引

    Microsoft SQL Server 索引 8.1创建索引 CREATE INDEX idx_name ON table_name(列名) --创建非聚集索引 use student go cre ...

  2. 如何使用crash分析vmcore - 之基础思路case1

    如何使用crash分析vmcore - 之基础思路case1 dmesg查看内核日志 [2493382.671020] systemd-shutdown[1]: Sending SIGKILL to ...

  3. css--小白入门篇2

    一.css基础选择器 html负责结构,css负责样式,js负责行为. css写在head标签里面,容器style标签. 先写选择器,然后写大括号,大括号里面是样式. 1 <style type ...

  4. selenium下拉滚动条

    selenium下拉滚动条 制作人:全心全意 谷歌浏览器下拉滚动条 chrome = webdriver.Chrome() //创建谷歌浏览器对象 url="http://www.baidu ...

  5. 利用ajax全局设置实现拦截器

    var token = localStorage.getItem("token"); $.ajaxSetup({ dataType: "json", cache ...

  6. plotting and saving over line in paraView

    probe -- provides the field values in a particular location in space To save plotoverline to csv fil ...

  7. 洛谷 2484 [SDOI2011]打地鼠

    [题解] n^6的做法很好想,然而这样复杂度不对.. 然后我们可以发现R和C可以分开求,这样复杂度降到了n^4. 使用树状数组可以把复杂度降到n^3logn,可以顺利通过. #include<c ...

  8. [bzoj4726][POI2017][Sabota?] (树形dp)

    Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人 ...

  9. [ural1057][Amount of Degrees] (数位dp+进制模型)

    Discription Create a code to determine the amount of integers, lying in the set [X; Y] and being a s ...

  10. 离职 mark

    昨天(2019 年 5 月 17 日),从 离职. 从 2018 年 7 月 14 日早 10 点余分到 2019 年 5 月 17 日早 10 点余分,一共 308 天整.这就是我出学校的第一份工作 ...