gulp html 压缩,gulp-gzip压缩
压缩效果:
压缩前:app.js 17104kb
压缩后:app.min.js.gz 758kb
对比: 22.6 : 1
压缩步骤:
(1)var gzip = require('gulp-gzip');
源文件:app.js 17104kb
第一层压缩:.pipe(uglify()) --> app.min.js 2597kb
第二层压缩:.pipe(gzip()) --> app.min.js.gz 758kb
(2)修改tomcat的\conf\server.xml文件
原来:
修改后:
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,application/x-javascript" />
说明:
1) compression="on" 打开压缩功能
2) compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB
3) noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩&<60;
4) compressableMimeType="text/html,text/xml" 压缩类型
(3)调用
如果直接在html文件调用.gz文件的话是不行的【Uncaught SyntaxError: Invalid or unexpected token】
所以打开eclipse新建项目
1) 新建一个web project h5项目
2) 导入你的全部文件
3)将【app.min.js.gz】修改为【app.min.gzjs】 同理 html文件调用就像调用普通js一样调用这个.gzjs文件
4)新建一个java class GzipJsFilter
package net.app.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());
}
}
}
4) 修改web.xml文件
原来:
h5
...
修改后
h5
GzipJsFilter
net.app.util.GzipJsFilter
headers
Content-Encoding=gzip
GzipJsFilter
*.gzjs
...
5) 打包h5项目放在tomcat即可
(4)请求信息
Request URL:http://localhost:8080/h5/js/app.min.gzjs
Request Method:GET
Status Code:200 OK
Remote Address:127.0.0.1:8080
【Response Headers】
view source
Accept-Ranges:bytes
Content-Encoding:gzip
Content-Length:775487
Date:Thu, 19 May 2016 02:30:44 GMT
ETag:W/"775487-1463623870000"
Last-Modified:Thu, 19 May 2016 02:11:10 GMT
Server:Apache-Coyote/1.1
【Request Headers】
view source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:8080
Pragma:no-cache
Referer:http://localhost:8080/h5/index.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2700.0 Safari/537.36
gulp html 压缩,gulp-gzip压缩相关推荐
- linux apache gzip压缩,Linux入门教程:配置Apache开启gzip压缩传输,gzip压缩
LoadModul
Linux入门教程:配置Apache开启gzip压缩传输,gzip压缩 LoadModul 开启模块 打开httpd.conf后,先将下面两行配置前面的#号去掉,这样apache就会启用这两个模块,其 ...
- java gzip 多个文件_Java Zip多文件压缩和 GZIP压缩
/** * 多文件压缩 * * @author Administrator * */ public class ZipCompress { public static void main(String ...
- python gzip压缩_Python gzip –压缩解压缩
python gzip压缩 Python gzip module provides a very simple way to compress and decompress files and wor ...
- 压缩:gzip压缩原理
什么是压缩 数据压缩并不只是对数据的处理,它还是找出数据中已有结构的过程 在数据压缩中,首先要为各种数据中的不同结构建立模型,然后利用这些模型(可能还需要最终感知这些数据的一些应用环境),以更紧凑的方 ...
- Linux中tar归档命令、zip压缩、gzip压缩、bzip2压缩
tar:归档,把多个文件整和在一起,常常用在备份上面,本身不具备压缩功能,但是可以指定其他压缩功能去压缩. 目录 一. tar命令的基本使用 1.常用命令选项 二.zip压缩命令的使用 1.常用命令选 ...
- 从 Gzip 压缩 SVG 说起 — 论如何减小资源文件的大小
原文地址:Of SVG, Minification and Gzip 原文作者:Anton Khlynovskiy 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- ...
- 启用Gzip压缩(IIS)提高客户端网站访问速度
IIS上启用Gzip压缩(HTTP压缩) 详解 一.摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 二.前言. 本文的知识点是从互联 ...
- apache启用gzip压缩方法
一.gzip介绍 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台.当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小.这取决于文件中 ...
- apache 启用 gzip压缩
一.gzip介绍 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台.当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小.这取决于文件中 ...
- Web服务器之Http压缩(GZip)
作者:张子秋 出处:http://www.cnblogs.com/zhangziqiu/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...
最新文章
- Ubuntu14.04上编译指定版本的protobuf源码操作步骤
- 北大成功研发 “忘情水” ,可精准删除特定记忆,有望今年进行人体测试
- kerberos简单介绍
- IOS热更新-JSPatch实现原理+Patch现场恢复
- 【linux技术】分布式存储技术实战演练
- [云炬创业基础笔记]第六章商业模式测试10
- CodeActivity基本使用
- C++ 11 深度学习(四)结构、权限修饰符
- 决策树编程python_Python如何制定决策:编程中的控制流简介
- HTML5前端开发就业前景,高薪背后的原因分析!
- cc2530单片机是几位单片机_我的单片机学习之路(续1)
- matlab cy68013,基于MATLAB的码垛机械手运动学分析与仿真
- osm地图数据 mysql_GIS 地图数据的来源?
- Galaxian 小蜜蜂
- (详细)华为畅享6S DIG-AL00的usb调试模式在哪里打开的教程
- 等价无穷小代换易混淆的概念错误!!用泰勒展开,以后!
- 2018 蓝桥杯省赛 B 组模拟赛(一)-U型数字
- 泰课在线夜猫的贪食蛇
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第37讲:HTTP协议请求(响应)
- JAVA实现城市交通查询系统
热门文章
- java小编程--在一个A字符串中找到与B字符串一样的,返回B字符串出现的第一个位置
- leetcode 75. Sort Colors | 75. 颜色分类(荷兰国旗问题,快速排序)
- leetcode 427. Construct Quad Tree | 427. 建立四叉树(分治法)
- 【Python】过滤数组中的空值(空字符串''和None)
- 【PAT甲级】1037 Magic Coupon (25 分) C++ 全部AC
- python3参考秘籍-附PDF下载
- 看动画学算法之:hashtable
- Hadoop2异常分析(一):hdfs移动数据至 hive,为什么原数据没有了?
- 【一起去大厂系列】深入理解MySQL中where 1 = 1的用处
- 5行代码解决——L1-042 日期格式化 (5分)