- 浏览: 277443 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhuzhuhenzhencheng:
密码是什么啊
Ext表格(Grid)上面的悬浮提示 -
鹿惊_:
确实如雪中送炭般温暖!
Ext扩展整理后吐血奉献 -
ortega1_2_3:
该版本貌似有bug,当sockIOPool的自平衡线程self ...
Java MemCached Window简单实现 -
q6952592:
好。解决了我的兼容模式下出现的问题。
Ext表格(Grid)上面的悬浮提示 -
fei33423:
请参考 fei33423的文章 java中直接调用groovy ...
Groovy应用(Java与Groovy间相互调用)
为了提高客户端的体验效果,RIA开发逐渐兴起。这样会项目中会充斥的大量的JavaScript代码,与此同时会消耗客户端浏览器性能。对于 Ext 实现的 one page one application ,对于外网访问也就产生了噩梦似的加载(除非你的网速足够快)。为了缓解(不是解决,从代码加载方面考虑)加载慢的问题可以对JavaScript进行压缩。
JavaScript的gzip静态压缩方法
一、将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
二、在项目web.xml中加入过滤器。
代码如下:
<filter> <filter-name>GzipJsFilter</filter-name> <filter-class>net.kangsoft.util.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>
三、加入过滤类
package net.kangsoft.util; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; 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 = 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); } 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()); } } }
四、在需导入js的页面head里面添加导入文件,如:<script type="text/javascript"
src="js/ext3/ext-all.gzjs"></script>
配置Apache,Tomcat的gzip压缩功能
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解 压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人
对于Tomcat5.0以后的版本是支持对输出内容进行压缩的。使用的是gzip压缩格式 从上面的第8行内容可以看出,要使用gzip压缩功能,你可以在Connector实例中加上如下 属性即可 tomcat 开启Gzip : 1.找到Tomcat 目录下的conf下的server.xml,并找到如下信息 将它改成如下的形式(其实在上面代码的下面已经有了,将他们打开而已。) 这样,就能够对html和xml进行压缩了,如果要压缩css 和 js,那么需要 甚至可以压缩图片: 一旦启用了这个压缩功能后,我们怎么来测试压缩是否有效呢?首先Tomcat是根据浏览器请求头中的accept-encoding来判断浏览器是否支持压缩功能,如果这个值包含有gzip,就表明浏览器支持gzip压缩内容的浏览,所以我们可以用httpclient来写一个这样的简单测试程序. import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; public class HttpTester { public static void main(String[] args) throws Exception{ HttpClient http = new HttpClient(); GetMethod get = new GetMethod("http://www.dlog.cn/js/prototype.js"); try{ get.addRequestHeader("accept-encoding", "gzip,deflate"); get.addRequestHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toolbar; Maxthon 2.0)"); int er = http.executeMethod(get); if(er==200){ System.out.println(get.getResponseContentLength()); String html = get.getResponseBodyAsString(); System.out.println(html); System.out.println(html.getBytes().length); } }finally{ get.releaseConnection(); } } }
执行这个测试程序,看看它所输出的是什么内容,如果输出的是一些乱码,以及打印内容的长度远小于实际的长度,那么恭喜你,你的配置生效了,你会发现你网站的浏览速度比以前快多了。
对于Apache而言,有两种情况 我这里面有一个完整的演示
对于Tomcat5.0以后的版本是支持对输出内容进行压缩的. 使用的是gzip压缩格式
下面是tomcat5.5.20 中的$tomcat_home$/conf/server.xml的原内容
< Connector port ="80" maxHttpHeaderSize ="8192" maxThreads ="150" minSpareThreads ="25" maxSpareThreads ="75" enableLookups ="false" redirectPort ="8443" acceptCount ="100" connectionTimeout ="20000" disableUploadTimeout ="true" URIEncoding ="utf-8" /> <!-- Note : To disable connection timeouts, set connectionTimeout value to 0 --> <!-- Note : To use gzip compression you could set the following properties : compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml" -->
1) compression="on" 打开压缩功能
2) compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB
3) noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩
4) compressableMimeType="text/html,text/xml" 压缩类型
我这里的配置内容为:
1)针对Apache2.0之前的版本,它原本是不支持 的,不过可以通过添加第三方的module_gzip模块来启用
2)针对Apache2.0及之后的版本,Apache提供支持, 不过不叫gzip,而叫mod_deflate
下面就对Apache2.0及之后的版本作一个说明
1) 去掉#LoadModule headers_module modules/mod_headers.so前面的注释#,
2) 添加LoadModule deflate_module modules/mod_deflate.so
3) 在VirtualHost中添加
- gzipExE文件.zip (60.7 KB)
- 下载次数: 79
- gziptest.rar (59.4 KB)
- 下载次数: 44
- httpclient-all.rar (4.3 MB)
- 下载次数: 29
发表评论
-
JSON查看工具
2012-03-09 22:26 0Eclipse 的json插件: 这款插件主要功能是把jso ... -
Ext扩展整理后吐血奉献
2012-01-19 13:58 7213对 Ext 扩展的一些小总结 1、multicombo (多 ... -
JSON LIB转化时间
2011-11-02 09:32 1388Ext Grid显示Json lib 转化时间为object的 ... -
JS计算日期差
2011-09-24 14:04 1631function Computation(sDate1,sDa ... -
将Air文件转换为EXE进行部署
2011-06-14 17:21 1740如果你的air sdk还没有升级到2.0 那显然是不行的. ... -
禁止IE的backspace键(退格键),但输入文本框时不禁止
2011-06-09 09:59 3707Ext实现方式: Ext.getDoc().on('keyd ... -
Ext中集成在线编辑器Ext.ux.TinyMCE
2011-05-31 15:46 3115Ext.ux.TinyMCE第三方对Ext 在线编辑器的扩展, ... -
Ex的Ajax请求实现同步
2011-05-31 15:29 1371Ext2,.x的Ajax实现同步 Ext.lib.Ajax. ... -
将返回的XML数据转化为JSON格式
2011-05-31 15:13 2215代码如下: /** * 转换xml为对象形式 * @ ... -
JS实现将XML转化为JSON
2011-05-31 15:09 5607直接上代码 xmlToJson={ parser: ... -
Ext表格(Grid)上面的悬浮提示
2011-05-30 16:36 7640方法一 使用render //鼠标放在Grid上面显示提示 ... -
开发者最容易犯的13个JavaScript错误
2011-04-25 10:28 7461.for.. 数组迭代的用法 U ... -
Ext皮肤切换
2011-04-22 10:46 3378/** * @author JLee * @since ... -
JS获取屏幕大小
2011-04-18 16:56 1252<html> <script> f ... -
在js中对中文和特殊字符转码
2011-04-14 14:21 3961直接上代码 js对文字进行编码涉及3个函数:escape,e ... -
Aptana 构建 Air 项目(集成ExtJS)
2011-03-17 01:00 35051、安装Aptana IDE ... -
XTemplate
2011-03-16 14:07 4582Ext XTemplate的应用: template. ... -
读取Properties文件中的内容填充本地combo
2011-03-10 16:24 1858首先定义一个properties文件放到classpath路径 ... -
汉字转换为拼音
2011-03-09 10:11 4619首先定义一个html页面: ... -
Ext Grid 实现批量添加或者修改
2011-03-02 22:30 4539将ExtJS Grid 中的record逐一转化为Bean,实 ...
相关推荐
标题中的“利用JAVASCRIPT实现GZIP压缩与解压缩”指的是在JavaScript环境中,我们可以使用原生或第三方库来处理GZIP格式的压缩和解压缩操作。GZIP是一种广泛使用的数据压缩格式,常用于减少网络传输的数据量,尤其是...
总之,批量使用Gzip压缩JavaScript文件可以有效地减小文件体积,提高网站加载速度,同时通过编写批处理脚本,可以自动化这个过程,节省时间和资源。理解这个过程和相关工具的使用,对优化Web应用性能和提升用户体验...
在JavaScript中,使用pako库进行gzip压缩和解压缩非常简单: 1. **压缩**:使用`pako.gzip()`方法,将未压缩的数据作为输入,它会返回一个已压缩的二进制字符串或Buffer(在Node.js环境下)。例如: ```javascript...
* AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript:这是一个设置,对 javascript 文件进行压缩。 结论 本文介绍了...
标题中的“最简单的gzip压缩”可能是指使用gzip命令行工具进行压缩的过程。在命令行界面,用户只需要输入`gzip 文件名`就能压缩指定的文件。解压gzip压缩文件同样简单,使用`gunzip 压缩文件名.gz`即可。 描述中...
总的来说,pako库为JavaScript开发者提供了一个强大且易用的工具,用于处理gzip压缩和解压缩任务,特别是对于包含非ASCII字符的数据。其对UTF-8编码的支持使得处理中文字符成为可能,大大拓宽了其在Web开发中的应用...
在Web应用中,服务器通常支持gzip压缩,但客户端到服务器的数据传输默认不进行gzip压缩,需要我们手动处理。 接着,介绍pako.js。pako.js是一个JavaScript实现的压缩库,提供了gzip和deflate等算法的压缩与解压功能...
在IT行业中,压缩技术是数据传输和存储时不可或缺的一部分,特别是在网络环境中,为了减少带宽消耗和加快网页加载速度,gzip压缩被广泛使用。本文将详细介绍如何在PHP环境中利用gzip进行数据压缩,涵盖两种服务器端...
本文主要探讨的是在IIS服务器上启用GZIP压缩针对JavaScript(js)和CSS文件无效的问题及其解决方案。 IIS(Internet Information Services)是微软提供的一个Web服务器,支持多种功能,包括GZIP压缩。当用户发现IIS...
在Web服务器上启用gzip压缩,可以显著降低页面的加载时间,尤其是在带宽有限的情况下,效果尤为明显。 首先,我们要准备要压缩的js和css文件,并将它们放入一个名为“gzip”的文件夹下。这样做是为了方便管理和操作...
在这个场景中,我们看到一个关于“nginx-1.18.0已开启gzip压缩优化vue项目大小.zip”的压缩包,它涉及到三个主要的技术领域:Nginx、gzip压缩以及Vue Element Admin。下面我们将详细探讨这些知识点。 首先,Nginx是...
Gzip压缩软件是一种广泛使用的数据压缩工具,尤其在Unix-like操作系统和Linux系统中非常常见。它的主要功能是将文件进行压缩,生成后缀为.gz的压缩文件,从而节省存储空间和提高传输效率。Gzip软件的全名是GNU zip,...
Java作为后端开发的重要语言,支持处理gzip压缩,而Ajax(Asynchronous JavaScript and XML)则是前端进行异步数据交互的技术。本文将深入探讨如何在Java后端实现对gzip压缩的处理,以便于Ajax请求能够正确地进行...
gzip压缩的工作原理基于LZ77算法,它通过查找文本中的重复模式并创建一个索引来实现压缩。在服务器端,gzip可以与HTTP响应头的"Content-Encoding"字段一起使用,告知浏览器接收到的数据是经过gzip压缩的。浏览器则会...
其中,通过使用Gzip压缩技术来减小JavaScript文件的大小,能够显著提升网站的加载速度,从而改善用户体验。Gzip是一种广泛使用的数据压缩算法,尤其适用于HTTP传输,因为它可以有效减少网络带宽的消耗。 **Gzip压缩...
`Gzip`是一种广泛使用的数据压缩算法,通过在服务器端压缩文件后再传输到浏览器,可以显著减少网络带宽的使用,加快网页加载速度。 首先,我们需要理解`Gzip`的工作原理。`Gzip`基于`DEFLATE`算法,它结合了LZ77...
服务器在响应中设置`Content-Encoding: gzip`,告知浏览器返回的内容是GZIP压缩过的。同时,浏览器可以通过发送`Accept-Encoding: gzip, deflate`请求头来告诉服务器它支持GZIP压缩。 2. **浏览器内置支持**: ...
在ASP.NET中,`compressionmodule`是一个专门用于实现HTTP压缩的模块,它能够帮助开发者有效地处理包括JavaScript(js)、CSS、ASPX以及AXD等文件的压缩问题,特别是对于包含中文字符的js文件,Gzip压缩能有效解决...
gzip压缩在Unix系统上非常常见,它通过压缩算法减少文件的大小,对于纯文本文件来说,尤其是HTML、CSS、JavaScript等网页内容文件,压缩后通常可以缩减到原来大小的40%甚至更小。这种压缩技术有助于降低网络传输的...
标题提到的"WIN2003下IIS6.0环境设置页面Gzip压缩"是一个关于如何在Windows Server 2003上的Internet Information Services (IIS) 6.0中启用HTTP压缩,特别是使用Gzip算法来减小网页传输大小的技术主题。HTTP压缩是...