Easyui 页面訪问慢解决方式,GZIP站点压缩加速优化
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站点压缩加速优化的更多相关文章
- 把war包放到Tomcat安装文件夹下,不能直接訪问的解决方式
临床表现: Tomcat启动后首页能訪问(http://localhost:8080/). 将自己写的一个webprojectwar包放到Tomcat安装文件夹下的/webapps以下(比方hello ...
- 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 ...
- html5的postmessage实现js前端跨域訪问及调用解决方式
关于跨域訪问.使用JSONP的方法.我前面已经demo过了.详细见http://supercharles888.blog.51cto.com/609344/856886,HTML5提供了一个很强大的A ...
- 利用JS跨域做一个简单的页面訪问统计系统
事实上在大部分互联网web产品中,我们一般会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便能够在这些统计系统中看到自己站点页面详细的訪问情况.可是有些时候,因为一些特殊情况,我 ...
- java 页面传输中文乱码解决方式
post 中文乱码解决方案 接受数据的时候设置 request.setCharacterEncoding("utf-8");//编码必须和页面编码一致 页面设置 <%@pag ...
- 配置NGINX支持中文URL 中文文件名称或文件夹404无法訪问的解决方法
NGINX不须要象apache那样要单独载入支持中文模块. # cat /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT=" ...
- javascript跨域訪问探索之旅
需求: 近期工作负责一个互联网应用A(我公司应用)与还有一个互联网应用B进行通讯.通讯的方式是这种:还有一个互联网应用某些表单信息须要从我公司的互联网应用获取.首先用户訪问互联网应用B ...
- web集群中经常使用的session同步解决方式及对照
随着站点的功能越来越多,用户量越来越庞大,单节点模式已经严重不能支撑整个系统的正常运作,轻则用户页面訪问时间越来越慢.重则就会导致整个系统瘫痪.这时候 就须要优化或调整眼下的架构,大部分人就会採用各种 ...
- JBOSS部署项目之后,无法通过IP地址訪问,仅仅能通过localhost或者127.0.0.1訪问
这几天入职到了一家新的公司,然后第一天就開始搭建各种环境.由于原先一直用的是Tomcat容器,然后也是第一次接触JBOSS容器,搭建完之后,在MyEclipse中启动了JBOSS容器,然后想在浏览器中 ...
随机推荐
- golang tar gzip 压缩,解压(含目录文件)
tar是用于文件归档,gzip用于压缩.仅仅用tar的话,达不到压缩的目的.我们常见的tar.gz就是用gzip压缩生成的tar归档文件. go实现tar压缩与解压与zip类似,区别在于tar需要使用 ...
- c3p0参数详解
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> <property name="acquireIncrement"& ...
- vs2017 visual studio2017 密钥 激活码
企业版Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF 专业版Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
- 【转载】自制4412底板自动进入SD卡更新模块
转载自迅为论坛:http://www.topeetboard.com参考平台:迅为iTOP-4412开发板 问题如下:在自制的底板上,当SD卡插在板子上开机时,会自动进入Updating模式,如果SD ...
- Codeforces_779_D.String Game_(二分)
D. String Game time limit per test 2 seconds memory limit per test 512 megabytes input standard inpu ...
- HDU_1072_Nightmare
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1072 题目描述:矩阵表示迷宫,0表示墙,1表示路,2表示起点,3表示终点,4表示重置炸弹时间(6秒),你需 ...
- Java基础(九)--反射
什么是反射? 在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性 这种动态获取的信息以及动态调用对象的方法的功能称为反射机制. 反射的前 ...
- 怎么让Eclipse对html和js代码自动提示
使用eclipse自带的插件,无需另外安装插件,具体步骤如下1.打开eclipse→Windows→Preferences→Java→Editor→Content Assist修改Auto Activ ...
- c# Dictionary 扩展方法
主要用于接口请求,数据转换 #region Dictionary 扩展方法 public static string getString(this Dictionary<string, stri ...
- kubeadmin 安装k8s集群
系统设置 CentOS Linux release 7.6.1810 (Core) 修改主机名 vim /etc/hostname k8s-master hostname -F /etc/hostna ...