`
chen2991101
  • 浏览: 38531 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

使用gzip压缩extjs文件

阅读更多

      突然奇想想用extjs4做一个外网项目,但是extjs4依赖的文件实在太大,光ext-all.js已经压缩后的都有1.2m,做外网的话速度非常的慢,为了提高速度可以用gzip对文件再进行压缩,最后可以让1.2m的文件压缩成300多k,这样就大大的节省的时间。

        1:先使用gzip压缩文件(http://download.csdn.net/detail/chen2991101/5654201)

         把gzip.ext放在一个目录下面,需要压缩的文件也要放在同目录下面,然后在cmd窗口中也要到同样的目录下面输入:“gzip 文件名” 即可,然后把后缀名修改成.gzjs

2:因为压缩过后需要浏览器来来解压,所以需要一个过滤器来添加一个头信息告诉浏览器需要解压

public class GzipFilter implements Filter {  
    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);  
  
        }  
  
    }  
  
    public void doFilter(HttpServletRequest request,  
  
    HttpServletResponse response, FilterChain chain)  
  
    throws IOException, ServletException {  
  
        request.setCharacterEncoding("UTF-8");  
  
        for (Iterator it = headers.entrySet().iterator(); it.hasNext();) {  
  
            Map.Entry entry = (Map.Entry) it.next();  
  
            response.addHeader((String) entry.getKey(), (String) entry.getValue());  
  
        }  
        chain.doFilter(request, response);  
  
    }  
  
    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());  
  
        }  
  
    }  
}  

 配置了过滤器后需要在web.xml中配置过滤器

<filter>         
    <filter-name>GzipJsFilter</filter-name>         
    <filter-class>org.mango.crm.filter.GzipFilter</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>  

 最后在html文件中引用压缩后的文件

<script type="text/javascript" src="/resource/extjs/ext-all.js.gzjs"></script>  

 这样就完成了

分享到:
评论

相关推荐

    Javascript开发之js压缩篇.pdf

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

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

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

    extjs整合ssh框架

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

    为Extjs加加速(javascript加速)

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

    ext-2.2.zip.tar.gz

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

    E3Resource

    3. 采用Servlet实现对资源的压缩处理,对系统设计、开发没任何要求,只需要在系统部署阶段,添加些配置文件就可以或可以获得资源压缩服务,所以使用E3.Resource没有什么风险. 4. 提供多种压缩策略,有jsMin, cssMin,...

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

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

    Json(struts2+Ext)

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

    JBob开发手册

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

    Ext Core Manual

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

Global site tag (gtag.js) - Google Analytics