Easyui 页面访问慢解决方案,GZIP网站压缩加速优化
生活随笔
收集整理的這篇文章主要介紹了
Easyui 页面访问慢解决方案,GZIP网站压缩加速优化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 靜態資源壓縮
GZIP是網站壓縮加速的一種技術,對于開啟后可以加快我們網站的打開速度,原理是經過服務器壓縮,客戶端瀏覽器快速解壓的原理,可以大大減少了網站的流量。
具體代碼可以參加 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网站压缩加速优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jeewx-api-1.0.1(捷微微信
- 下一篇: c/c++素数距离问题