`

使用GZIP动态压缩Extjs

    博客分类:
  • ext
 
阅读更多
  比来做的Ext项目Ext的插件都斗劲大,对于网页的浏览速度也是很是不容乐观的,于是就须要对所加载的js文件进行优化,此中一个办法就是对于较大的js文件可以进行紧缩。紧缩成gzjs格局,然则gzjs后缀名的文件又不克不及被浏览器所熟悉,得须要对办事器端做些处理惩罚。 

一、将js格局文件紧缩成gzjs格局。应用gzip.exe打包紧缩后的JS文件,最后生成xx.js.gz,把xx.js.gz文件改成xx.gzjs。紧缩实例: ext-all.js (610KB), gzip.exe紧缩后为ext-all.gzjs(168KB)。 
附:gzip应用办法,在号令行下输入: gzip -9 ext-all.js ext-all.js.gz 
批改ext-all.js.gz的后缀名ext-all.gzjs(注:也可以经由过程gzip -h号令查看帮助) 
地址:http://www.gzip.org 

    import java.io.IOException;       
    import java.util.HashMap;       
    import java.util.Iterator;       
    import java.util.Map;       
    import javax.servlet.Filter;       
    import javax.servlet.FilterChain;       
    import javax.servlet.FilterConfig;       
    import javax.servlet.ServletException;       
    import javax.servlet.ServletRequest;       
    import javax.servlet.ServletResponse;       
    import javax.servlet.http.HttpServletRequest;       
    import javax.servlet.http.HttpServletResponse;       
    public class GzipJsFilter implements Filter     {      
    	@SuppressWarnings("unchecked")      
    	Map headers = new HashMap();      
    	public void destroy() { }       
    	public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)     
    	throws IOException, ServletException {   
    		if (req instanceof HttpServletRequest)   
    			doFilter((HttpServletRequest)req, (HttpServletResponse)res, chain);     
    		else      
    			chain.doFilter(req, res);      }    
    	@SuppressWarnings("unchecked")      
    	public void doFilter(HttpServletRequest request, HttpServletResponse response,       
    			FilterChain chain)      
    	throws IOException, ServletException      
    	{       
    		request.setCharacterEncoding("UTF-8");      
    		for (Iterator it = this.headers.entrySet().iterator(); it.hasNext(); ) {         
    			Map.Entry entry = (Map.Entry)it.next();       
    		response.addHeader((String)entry.getKey(), (String)entry.getValue());       
    		}       
    		chain.doFilter(request, response);      }     
    	@SuppressWarnings("unchecked")      
    	public void init(FilterConfig config) throws ServletException {       
    		String headersStr = config.getInitParameter("headers");      
    		String[] headers = headersStr.split(",");       
    		for (int i = 0; i < headers.length; ++i) {       
    			String[] temp = headers[i].split("=");       
    			this.headers.put(temp[0].trim(), temp[1].trim());      
    			}       
    		}      
    	}     
    <filter>       
    <filter-name>GzipJsFilter</filter-name>      
    <filter-class>com.byd.core.GzipJsFilter</filter-class>  
    <init-param>       
    <param-name>headers</param-name>     
    <param-value>Content-Encoding=gzip</param-value>     
    </init-param>       
    </filter>       
    <filter-mapping>       
    <filter-name>GzipJsFilter</filter-name>       
    <url-pattern>*.gzjs</url-pattern>      
    </filter-mapping>
分享到:
评论

相关推荐

    Javascript开发之js压缩篇.pdf

    作者使用yui-compressor压缩ExtJS库和其他js文件,实现了较好的压缩效果。 在使用yui-compressor时,作者推荐使用ANT来自动化压缩过程。ANT是一个基于Java的构建工具,可以自动化构建过程。作者提供了一个使用ANT的...

    extjs+java实现短信猫发生短信dom

    在描述中提到“使用了EXTJS和GZIP压缩”,可能是指在前端,EXTJS可能被用来对请求或响应进行GZIP压缩,以优化网络性能。在服务器端,Java也可能有相应的处理,如使用Servlet API中的GZIPOutputStream来压缩响应数据...

    ExtJS5 整合Spring4之二

    在Spring中,`Filter`接口用于处理HTTP请求和响应,例如,实现认证、日志记录、GZIP压缩等功能。 - 集成时,可能会配置一个过滤器来处理ExtJS和Spring之间的通信,比如添加必要的头信息或者处理特定的请求格式。 5...

    extjs整合ssh框架

    为了提高性能,我们可以启用Tomcat的GZIP压缩。在Tomcat的`conf/server.xml`中,找到`Connector`标签,添加`useGzipCompression`属性并设为`true`。 **步骤6:配置Web.xml** 在`web.xml`中配置登录验证过滤器,这...

    asp.net与extjs开发点卡在线销售系统

    可以通过缓存策略减少数据库访问,使用GZip压缩减小HTTP响应大小,以及利用ASP.NET的输出缓存提高页面渲染速度。 总的来说,ASP.NET与ExtJS的结合为点卡在线销售系统提供了强大且灵活的开发平台。通过C#实现业务...

    为Extjs加加速(javascript加速)

    总之,通过减少加载的JavaScript文件数量,结合Gzip压缩技术和服务器端过滤器的配置,可以有效提升ExtJS应用程序的运行速度。这些技术的应用能够大幅度减少客户端与服务器之间的数据传输量,改善用户体验,并在带宽...

    E3Resource

    1. 动态压缩(是由系统自动压缩,不需要人事先压缩)js,css等静态资源,只需要处理一次,处理的结果可以被cache起来. 2. 当资源文件发生变化时,能自动更新资源,不需要重启服务器. 3. 采用Servlet实现对资源的压缩处理...

    ext-2.2.zip.tar.gz

    在实际操作中,首先需要使用`gunzip`命令去除gzip压缩,然后使用`tar -xvf`解压tar文件,最后用`unzip`解开zip文件。解压后的文件将提供更详细的关于ext-2.2和如何与Oozie集成的信息。对于开发者而言,理解这些内容...

    PyPI 官网下载 | extdirect-0.2.tar.gz

    tar用于打包多个文件和目录,而gzip则负责对打包后的文件进行压缩,以节省存储空间。在Python环境中,我们可以使用内置的`tarfile`模块来解压这个文件,例如: ```python import tarfile with tarfile.open('...

    第1章JQuery系统介绍.pdf

    1. 轻量级:压缩后的大小不到30KB,经过Gzip压缩后更是减少到18KB,这大大提高了页面加载速度。 2. 易用性:jQuery的API设计简洁,使得开发者易于理解和使用。 3. 兼容性:jQuery对各种浏览器的良好支持,减少了...

    第1章JQuery系统介绍.docx

    1. **轻量级**:jQuery的核心库非常小巧,压缩后的大小只有30KB左右,使用Gzip压缩后甚至不到18KB,这对于网页加载速度有着显著提升。 2. **兼容性**:jQuery致力于解决不同浏览器间的差异,提供了一致的API,使得...

    Json(struts2+Ext)

    这包括如何配置Action返回JSON,如何处理JSON数据的序列化和反序列化,以及如何优化JSON的性能,例如启用GZIP压缩、控制JSON输出的白名单等。 总结来说,“Json(struts2+Ext)”是一个关于使用Struts2框架和ExtJS库...

    JQuery系统介绍

    JQuery的压缩版本大小不到30KB,在服务器端启用Gzip压缩后,甚至可缩小至18KB,这使得加载速度极快,适用于各种网络环境。 #### 强大的选择器 JQuery支持几乎所有CSS1至CSS3的选择器,以及XPath选择器,甚至允许...

    Ext Core Manual

    而对于生产环境,应使用未带`-debug`后缀的版本(`ext-core.js`),其大小经过压缩和gzip处理后仅为25KB: ```html &lt;script src="ext-core.js"&gt;&lt;/script&gt; ``` 值得注意的是,Ext Core不包含任何CSS文件,因此无需...

    JBob开发手册

    **8.6 Gzip压缩配置** - **压缩规则**:定义了哪些类型的数据应该被压缩传输,以减少网络流量。 #### 九、开发管理 **9.1 开发规范** - **代码规范**:提供了一套标准的代码编写规范,以提高代码质量和可读性。 - ...

Global site tag (gtag.js) - Google Analytics