Gzip的官方网址为:
http://www.gnu.org/software/gzip/
Gzip的使用很简单
解压至某个目录,会看到有一个Gzip.exe文件,然后在命令窗口进入该目录,执行
gzip ext-all.js
ext-all.js马上变成为ext-all.js.gz
大小从原来600多k摇身一变成了160多k,简直压细小很多。这回下载速度就非常快了。
那么浏览器能否解析这种压缩文件?答案是肯定的,前提是告诉浏览器,这种文件需要解压,然后再执行,解压的过程由浏览器来执行。
那么应用程序如何告诉浏览器,该文件需要解压呢,这得由服务器通过Http的Header指令来进行。
在JOffice中,就是通过Filter来进行的。
1.把ext.all.js.gz文件名改为ext.all.gzjs,Filter等一下就会拦截这种文件的访问。
2.写一个Filter,完成向Header添加指令
代码如下:
package com.htsoft.core.web.filter;
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 {
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());
}
}
}
3.在WEB.xml 文件中,添加以下配置:
<filter>
<filter-name>GzipJsFilter</filter-name>
<filter-class>com.htsoft.core.web.filter.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>
<servlet-mapping>
4.在index.jsp中引入该压缩文件:
<script type="text/javascript" src="<%=request.getContextPath()%>/ext3/ext-all.gzjs"></script>
分享到:
相关推荐
标题中的“利用JAVASCRIPT实现GZIP压缩与解压缩”指的是在JavaScript环境中,我们可以使用原生或第三方库来处理GZIP格式的压缩和解压缩操作。GZIP是一种广泛使用的数据压缩格式,常用于减少网络传输的数据量,尤其是...
它可能涵盖了在不同操作系统(如Linux、Windows和macOS)上安装gzip的方法,以及如何使用gzip命令行工具对文件进行压缩和解压缩。此外,它可能还包含了如何在服务器配置文件中启用gzip的示例,帮助开发者更好地理解...
在IT行业中,优化网站性能是至关重要的,其中一种方法就是对JavaScript(js)和CSS(css)文件进行压缩。本文将详细讲解如何使用gzip工具来压缩这两种文件,以减少网络传输的数据量,从而提高网页加载速度。 gzip是...
在JavaScript中,使用pako库进行gzip压缩和解压缩非常简单: 1. **压缩**:使用`pako.gzip()`方法,将未压缩的数据作为输入,它会返回一个已压缩的二进制字符串或Buffer(在Node.js环境下)。例如: ```javascript...
2. **使用pako.js进行gzip压缩**:导入pako.js库,然后调用`pako.gzip()`函数对数据进行gzip压缩。例如: ```javascript var dataString = JSON.stringify(yourData); var compressedData = pako.gzip(dataString...
此外,对于已经进行了其他压缩(如minify)的文件,再次使用`Gzip`压缩可能效果不明显,因为这些文件可能已经很小了。 总的来说,合理利用`PHP Gzip`压缩能够有效提升网站性能,减少用户等待时间,提供更好的浏览...
本文主要探讨的是在IIS服务器上启用GZIP压缩针对JavaScript(js)和CSS文件无效的问题及其解决方案。 IIS(Internet Information Services)是微软提供的一个Web服务器,支持多种功能,包括GZIP压缩。当用户发现IIS...
gzip是Linux环境中广泛使用的文件压缩工具,其源代码主要由C语言编写。本文将深入探讨gzip的原理、C语言实现细节以及如何进行gzip压缩和解压缩。 首先,gzip基于著名的DEFLATE算法,该算法结合了LZ77(一种字典压缩...
本篇文章将深入探讨GZIP的基本使用,以及如何通过GZIP对单个文件进行简单压缩。 首先,GZIP是一种无损压缩算法,这意味着在压缩和解压缩过程中,原始数据不会丢失,从而保证了数据的完整性。这种特性使得GZIP在保存...
GZIP是一种广泛使用的数据压缩格式,主要用于文件传输和存储。它基于DEFLATE算法,该算法结合了LZ77(一种字典压缩方法)和霍夫曼编码(一种熵编码方法),旨在高效地减小文件大小,同时保持可逆性,即解压缩后能...
如果你有一个文件,例如“test.txt”,包含了混合的中英文内容,你可以先读取文件内容,然后用pako进行压缩: ```javascript var fileContent = readFileSync('test.txt', 'utf-8'); // 使用合适的文件读取方法 var...
Gzip是一种广泛使用的压缩算法,其压缩率较高,但压缩和解压缩速度相对较慢。在MapReduce中,通过设置`mapreduce.output.fileoutputformat.compress`为`true`和`mapreduce.output.fileoutputformat.compress.codec`...
如果客户端支持Gzip,它会在请求头中包含`Accept-Encoding: gzip`字段,服务器接收到这个请求后,会将资源(如JavaScript文件)用Gzip压缩后再返回给客户端。 **提高网站运行速度** 1. **减小文件大小**:Gzip能将...
5. **tar**:tar是一种打包工具,它可以将多个文件和目录打包成一个单一的归档文件,但不进行压缩。PHP的`PharData`类可以处理tar格式的文件。`createFromDirectory()`方法可以创建一个包含指定目录内容的tar文件,...
文章中介绍了两种解决方法:一、使用yui-compressor对js文件进行压缩混淆,二、使用gzip压缩来减少文件体积。 首先,作者提到使用ExtJS库时遇到的问题,即ExtJS庞大的体积如何进行压缩和优化。作者引入了OPOA组件式...
本文将深入探讨如何在Windows环境下批量使用Gzip工具压缩JavaScript(js)文件,并将其转换为gzjs文件。 首先,我们需要理解“gzip批量压缩js为gzjs文件”的概念。这里的“gzjs”并不是一个标准的文件格式,而是将...
Gzip(GNU zip)是一种广泛使用的数据压缩算法,它可以在发送数据到客户端之前对其进行压缩,从而减少传输的数据量。在ASP.NET中,`compressionmodule`是一个专门用于实现HTTP压缩的模块,它能够帮助开发者有效地...
1. **文件压缩**:将一个未压缩的文件读入内存,使用gzip库进行压缩,然后将压缩后的数据写回磁盘,生成.gz格式的压缩文件。 2. **文件解压缩**:读取.gz格式的压缩文件,使用gzip库解压缩,将原始数据恢复并写回到...
gzip是一款开源的压缩程序,它使用LZ77算法进行数据压缩,能够有效地减少文件大小,从而节省存储空间。在Windows环境下,gzip通常被打包成gzip-1.3.12-1-bin.zip这样的压缩文件供用户下载和安装。gzip的主要功能包括...
标题中的“最简单的gzip压缩”可能是指使用gzip命令行工具进行压缩的过程。在命令行界面,用户只需要输入`gzip 文件名`就能压缩指定的文件。解压gzip压缩文件同样简单,使用`gunzip 压缩文件名.gz`即可。 描述中...