JavaScript的gzip静态压缩方法记录
传统的JS压缩(删除注释,删除多余空格等)提供的压缩率有时还是不尽不意,幸亏现在的浏览器都支持压缩传输(通过设置http header的Content-Encoding=gzip),可以通过服务器的配置(如apache)为你的js提供压缩传输,或是appfuse中使用的GZipFilter使tomcat也提供这种能力
现在的问题是这种动态的压缩会导致服务器CPU占用率过高,现在我想到的解决辨法是通过提供静态压缩(就是将js预先通过gzip.exe压缩好)
一.下面描述在tomcat中的应用
1.将prototype.js通过gzip.exe压缩保存成prototype.gzjs
2.设置header,我编写了一个简单的AddHeadersFilter来将所有以gzjs结尾的文件增加设置header Content-Encoding=gzip
web.xml中的配置
- <filter>
- <filter-name>AddHeaderFilter</filter-name>
- <filter-class>
- badqiu.web.filter.AddHeaderFilter
- </filter-class>
- <init-param>
- <param-name>headers</param-name>
- <param-value>Content-Encoding=gzip</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>AddHeaderFilter</filter-name>
- <url-pattern>*.gzjs</url-pattern>
- </filter-mapping>
测试prototype.js是否正常的代码
- <html>
- <head>
- <!-- type="text/javascript"不可少,有些浏览器缺少这个不能运行,具体已经忘记了 -->
- <script src="prototype.gzjs" type="text/javascript"></script>
- </head>
- <body>
- <input id="username" name="username" value="badqiu"/><br />
- <input id="email" value="badqiu@gmail.com"/>
- <script>
- <!-- 测试prototype的方法是否正常-->
- alert($F('username'))
- </script>
- </body>
- </html>
在Apache httpd中可以直接通过在httpd.conf增加AddEncoding x-gzip .gzjs来映射.gzjs文件的header
二.相关压缩率数据
1. prototype.js 1.5.0_rc0原始大小56KB,未经任何处理直接使用gzip压缩为12KB,总压缩率79%
2. 通过js压缩工具压缩过的protytype.js为20KB,使用gzip压缩为10KB,总压缩率为83%
3. 实际项目中的多个js合并成的文件 439KB,直接通过gzip压缩为85KB,总压缩率81%
4. 439KB经过js压缩为165KB,再经过gzip压缩为65KB,总压缩率86%
基本上你都可以忽略js压缩工具的压缩率,直接使用gzip压缩
gzip下载地址 http://www.gzip.org
tomcat的压缩配置示例下载地址: http://www.blogjava.net/Files/badqiu/gziptest.rar
转载于:https://www.cnblogs.com/xiaochao12345/p/3831383.html
JavaScript的gzip静态压缩方法记录相关推荐
- nginx 源码安装并开启gzip静态压缩
前言 Nginx 使用 yum (Centos7) 在线安装方式无法开启 gzip 静态压缩,只能采用源码安装并开启 gzip 静态压缩(gzip_static). 安装下载工具 yum instal ...
- IIS 7 启用 gzip 静态压缩 压缩js和css文件
搞了很久,不如nginx好弄,不知道怎么修改压缩比,也不知道怎么压缩的规则是啥(管理器上没有写),不过反正出来了,一个js文件900多K变成了100多K 1.在web.config文件里面加上: &l ...
- 【转】linux服务器的Gzip文件压缩方法
转自 http://www.dabaoku.com/jiaocheng/fabu/linux/201008016596.shtml Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Lin ...
- linux服务器的Gzip文件压缩方法[转]
一.gzip介绍 gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式.软件的作者是Jean-loup Gailly和Mark Adler.1992 ...
- linux服务器的Gzip文件压缩方法
一.gzip介绍 gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式.软件的作者是Jean-loup Gailly和Mark Adler.1992 ...
- 在IIS上启用Gzip压缩 (HTTP压缩)方法
本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 一.摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小 ...
- apache启用gzip压缩方法
一.gzip介绍 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台.当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小.这取决于文件中 ...
- Gzip的动态压缩和静态压缩详解
Gzip的压缩分为动态压缩和静态压缩.动态压缩简而言之就是nginx上的资源是以原始文件形式存在的,当返回给浏览器的时候再进行压缩,浏览器收到压缩文件再解压缩.静态压缩就是nginx上的资源不是原始文 ...
- 万网m3 windows linux切换,万网M3-linux虚拟主机开启网页Gzip压缩方法
广信之家给大家分享:万网M3-linux虚拟主机开启网页Gzip压缩方法,万网M3月流量30G,如果我们开启了网页Gzip压缩,不仅能提升网页的访问速度还可为我们节约空间的流量,所以网页Gzip压缩对 ...
最新文章
- ADPRL - 近似动态规划和强化学习 - Note 8 - 近似策略迭代 (Approximate Policy Iteration)
- python的运行窗口-Python初学——窗口视窗Tkinter
- python 预测足球_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!...
- python3 Crypto使用出现的问题
- 文献阅读课10-Neural Relation Extraction for Knowledge Base Enrichment(提取+嵌入+消歧+规范化联合模型,实体已知,仅关系抽取,多词实体)
- 使用 ExceptionDispatchInfo 捕捉并重新抛出异常
- java编程思想2_《JAVA编程思想2》笔记
- tomcat 版本_Tomcat竟然有bug,这我能信?
- Security+ 学习笔记5 常见的网络攻击
- iBATIS In Action:iBATIS的安装和配置
- pandas的离散化,面元划分
- 揭秘你不知道的京东管理体系!
- 大麦无线路由器改装打印服务器,大麦domywifi DW33D路由器固件openwrt重分区版
- CentOS防火墙开启masquerade后即开启包转发功能
- sencha touch总结
- oracle remap语句格式,impdp 中的remap方式
- 计算机所选区域单元格数值,筛选Excel2007单元格区域或表中的数据
- 《他是谁》爆火,优酷的成功并非偶然
- 7、Chrome插件
- Java(老白再次入门) - 多线程
热门文章
- OCR文本检测-RRPN
- 怎么用excel表做网页搜索工具_你敢相信?Excel居然可以做搜索引擎
- deno mysql_从 Node 到 Deno
- 现在很多单位有用计算机,为什么到了现在,还有很多的单位在用着xp系统?
- Spring Cloud 未来发展方向
- 信安精品课:第1章网络信息安全概述精讲笔记
- 宝塔面板的ftp无法使用解决
- Oracle从零开始3——复杂查询
- vc6可编译的 linux 源码,winpcap+vc6编译环境配置,以及获取网络设备列表的源代码...
- (一二〇)CALayer的一些特性