- 浏览: 272658 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 7111对 Ext 扩展的一些小总结 1、multicombo (多 ... -
JSON LIB转化时间
2011-11-02 09:32 1324Ext Grid显示Json lib 转化时间为object的 ... -
JS计算日期差
2011-09-24 14:04 1547function Computation(sDate1,sDa ... -
将Air文件转换为EXE进行部署
2011-06-14 17:21 1683如果你的air sdk还没有升级到2.0 那显然是不行的. ... -
禁止IE的backspace键(退格键),但输入文本框时不禁止
2011-06-09 09:59 3655Ext实现方式: Ext.getDoc().on('keyd ... -
Ext中集成在线编辑器Ext.ux.TinyMCE
2011-05-31 15:46 3061Ext.ux.TinyMCE第三方对Ext 在线编辑器的扩展, ... -
Ex的Ajax请求实现同步
2011-05-31 15:29 1326Ext2,.x的Ajax实现同步 Ext.lib.Ajax. ... -
将返回的XML数据转化为JSON格式
2011-05-31 15:13 2182代码如下: /** * 转换xml为对象形式 * @ ... -
JS实现将XML转化为JSON
2011-05-31 15:09 5548直接上代码 xmlToJson={ parser: ... -
Ext表格(Grid)上面的悬浮提示
2011-05-30 16:36 7532方法一 使用render //鼠标放在Grid上面显示提示 ... -
开发者最容易犯的13个JavaScript错误
2011-04-25 10:28 6921.for.. 数组迭代的用法 U ... -
Ext皮肤切换
2011-04-22 10:46 3315/** * @author JLee * @since ... -
JS获取屏幕大小
2011-04-18 16:56 1216<html> <script> f ... -
在js中对中文和特殊字符转码
2011-04-14 14:21 3909直接上代码 js对文字进行编码涉及3个函数:escape,e ... -
Aptana 构建 Air 项目(集成ExtJS)
2011-03-17 01:00 34321、安装Aptana IDE ... -
XTemplate
2011-03-16 14:07 4532Ext XTemplate的应用: template. ... -
读取Properties文件中的内容填充本地combo
2011-03-10 16:24 1819首先定义一个properties文件放到classpath路径 ... -
汉字转换为拼音
2011-03-09 10:11 4558首先定义一个html页面: ... -
Ext Grid 实现批量添加或者修改
2011-03-02 22:30 4423将ExtJS Grid 中的record逐一转化为Bean,实 ...
相关推荐
利用JAVASCRIPT即你想那个GZIP压缩与解压缩 最近流行的网络游戏(FLASH)数据传输都是用GZIP进行压缩与解压缩的,在客户端FLASH对与服务器交互的数据进行解压缩,
摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 二.前言. 本文的知识点是从互联网收集整理, 主要来源于中文wiki. 使用YSlow检测网站启用了哪些优化时, ...
开启TOMCAT6的GZIP压缩功能,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。...
使用Gzip打包JavaScript、CSS文件,Java后台Filter解压缩
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 1k; # gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间。 gzip_comp_level 2; # 进行压缩的文件类型。 gzip_types text/plain ...
一个页面减少10KB对于一个小网站来说,算不上什么,但对于大型站点来说,累计起来却是一个很大的流量……gzip压缩是一个有效可行的方法,但需要Apache的支持(Apache与IIS共用一个端口解决方法)。 传统的JS压缩(删除...
摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 二.前言. 本文的知识点是从互联网收集整理, 主要来源于中文wiki. 使用YSlow检测网站启用了哪些优化时, ...
将文件预压缩为gzip和brotli并自动提供 这可以提高您的nuxt应用程序的性能: 在构建时将文件压缩为gzip和brotli,如果浏览器支持,则将其提供。 请注意: 该模块对gzip和brotli使用 。 compression-webpack-plugin...
自己项目中使用后整理的js压缩工具,支持gzip压缩后,再次压缩,存在详细的使用办法
HTTP压缩采用通用的压缩算法如GZIP等压缩HTML、JavaScript或CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。GZIP是比较常见的一种...
主要介绍了Nginx服务器的配置中开启文件Gzip压缩的方法,可以对CSS和JavaScript以及各种图片等web传输的文件进行压缩,需要的朋友可以参考下
HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。 压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。 当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种...
原理简介 ...相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。...Tomcat5.0以后的版本是支持对输出内容进行压缩的,使用的是gzip压缩格式 。 修改%TOMCAT_HOME%/conf/server.
一、前言 最近做了个项目,遇到这么一个问题:服务器返回给客户端的json数据量太大(大概...相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括C
对GZip 压缩支持。 安装 npm install revolt-gzip 例子 var revolt = require ( 'revolt' ) ; var gzip = require ( 'revolt-gzip' ) ; var client = revolt ( ) . use ( gzip ) ; client . get ( '...
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 1k; # gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明 gzip_comp_level 2; # 进行压缩的文件类型。...
“Javascript Minify & Compress (jsmc)” 实时最小化创建和修改的 Javascript 并将其压缩为 gzip 格式。例如,Javascript 编译器。 网页 使用示例 java -jar jsmc.jar –watch js-src:js将“js-src”目录下的“.js...
HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如GZIP等压缩HTML、JavaScript或CSS文件。
java端:返回类型非字符接口调用StringUtils#base64AndCompressJson进行编码压缩 ,返回类型为字符接口调用StringUtils#base64Andcompress js 端:引入压缩包中的js文件 ,调用deBase64AndUncompress进行解压解码