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页面"的项目提供了一个简化版的EasyUI页面,非常适合用作前台UI界面,以实现简洁、高效的用户交互体验。 EasyUI的核心特性包括组件丰富、易于使用、响应式布局以及对Bootstrap的兼容性。以下...
在标题和描述中提到的“jQuery.easyui 优化版本,解决了页面覆盖的问题”,这表明这个版本对原版 jQuery EasyUI 进行了特定的优化,特别是针对页面元素重叠或遮挡问题进行了修复。 页面覆盖问题通常发生在多个 UI ...
EASYUI的核心理念是通过预定义的样式和组件,为开发者提供一套易于使用的UI解决方案,让开发者可以专注于业务逻辑的实现,而不是繁琐的界面设计。 EASYUI 的核心组件包括但不限于以下几点: 1. **布局(Layout)**...
这个名为"EasyUI登录页面.zip"的压缩包文件包含了使用EasyUI框架构建的一个登录页面的相关资源。EasyUI框架主要基于jQuery,它提供了一系列预先设计的CSS样式和JavaScript组件,使得开发者能够快速构建出美观且功能...
EasyUI 是一个基于 jQuery 的前端框架,用于快速开发界面组件。...通过这些优化方案,虽然无法完全达到现代浏览器的渲染效率,但可以在很大程度上提升 IE8 及以下版本中 EasyUI 应用的运行速度,显著改善用户体验。
easyui页面操作.easyui页面操作easyui页面操作.easyui页面操作.easyui页面操作
总的来说,EasyUI 提供了一套完整的前端解决方案,帮助开发者快速构建功能丰富的 Web 应用程序。通过这个"easyui 页面的例子",你可以学习到如何使用 EasyUI 的各种组件,并将其应用于实际的网页设计中。实践中,...
3. 调试与优化:通过断点、日志等手段调试代码,优化性能,解决实际问题。 4. 扩展与定制:根据项目需求,学习如何扩展EasyUI功能或自定义样式。 总结,jQuery EasyUI 1.5.3 的未压缩源代码为开发者提供了一个宝贵...
这个"Jquery EasyUI 页面框架Demo"包含了四个示例,将帮助我们更好地理解和运用EasyUI来设计页面布局。 首先,我们要了解EasyUI的核心概念。EasyUI的核心是其组件库,包括窗口(window)、表格(datagrid)、面板...
本项目"基于EasyUI的登录页面"就是利用EasyUI来创建一个功能完备、易于拓展的登录界面。 首先,EasyUI的核心理念是“简单易用”。它为开发者提供了大量的预定义样式和插件,如表格、下拉菜单、按钮、对话框等,大大...
easyui页面模板,上传后以便自己日后查看参考
Easyui 未压缩版, 学习Easyui,深入理解,扩展,修改Easyui插件必备
在“easyui页面布局示例”中,我们将探讨如何利用 EasyUI 实现高效且直观的页面布局,并结合导航菜单,实现动态内容加载。 首先,EasyUI 提供了多种布局模式,如网格布局(grid layout)、面板布局(panel layout)...
在使用easyui框架开发Web应用时,特别是在使用tab布局的...以上就是对于easyui中iframe页面重复加载问题的分析及其解决方案的详细说明。在实际开发中,应合理运用这一技术细节,以达到更好的用户交互体验和系统性能。
这个登录页面是许多 web 应用程序的基础部分,它允许用户输入凭据并访问受保护的内容。 首先,EasyUI 登录页面通常包含以下几个核心元素: 1. **布局(Layout)**:EasyUI 提供了灵活的布局管理,用于创建页面的...
在EasyUI中,我们可能会遇到需要在弹出窗口(子页面)与父页面之间进行数据传递或调用父页面方法的需求。下面将详细讲解这个过程。 首先,让我们理解标题中的“弹出window窗口传值”。在EasyUI中,创建一个弹出窗口...
《jQuery EasyUI 1.3.3 源码解析与学习指南》 ...通过深入研究源码,不仅可以提升JavaScript和前端开发技能,还能为实际项目带来更高效、更个性化的解决方案。无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。
easyUI页面datagrid动态列和form字段动态添加;项目开发时用到的,废了不少事,大概总了一下,现在发出来共享给想我一样的要用到的菜鸟们,谢谢
《jQuery EasyUI 1.05未压缩源代码解析与应用》 jQuery EasyUI 是一个基于 jQuery 的前端开发框架,它提供了一套完整的用户界面组件,使得开发者可以快速构建功能丰富的Web应用程序。EasyUI 的设计灵感来源于 ExtJS...
本文主要探讨如何针对EasyUI datagrid进行性能优化,以解决大数据量加载慢的问题。 首先,我们需要理解问题的根源。当datagrid加载大量数据时,如果未进行优化,其内部的某些功能,如行高自动调整,可能导致性能...