压缩效果:

压缩前: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压缩相关推荐

  1. linux apache gzip压缩,Linux入门教程:配置Apache开启gzip压缩传输,gzip压缩 LoadModul

    Linux入门教程:配置Apache开启gzip压缩传输,gzip压缩 LoadModul 开启模块 打开httpd.conf后,先将下面两行配置前面的#号去掉,这样apache就会启用这两个模块,其 ...

  2. java gzip 多个文件_Java Zip多文件压缩和 GZIP压缩

    /** * 多文件压缩 * * @author Administrator * */ public class ZipCompress { public static void main(String ...

  3. python gzip压缩_Python gzip –压缩解压缩

    python gzip压缩 Python gzip module provides a very simple way to compress and decompress files and wor ...

  4. 压缩:gzip压缩原理

    什么是压缩 数据压缩并不只是对数据的处理,它还是找出数据中已有结构的过程 在数据压缩中,首先要为各种数据中的不同结构建立模型,然后利用这些模型(可能还需要最终感知这些数据的一些应用环境),以更紧凑的方 ...

  5. Linux中tar归档命令、zip压缩、gzip压缩、bzip2压缩

    tar:归档,把多个文件整和在一起,常常用在备份上面,本身不具备压缩功能,但是可以指定其他压缩功能去压缩. 目录 一. tar命令的基本使用 1.常用命令选项 二.zip压缩命令的使用 1.常用命令选 ...

  6. 从 Gzip 压缩 SVG 说起 — 论如何减小资源文件的大小

    原文地址:Of SVG, Minification and Gzip 原文作者:Anton Khlynovskiy 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- ...

  7. 启用Gzip压缩(IIS)提高客户端网站访问速度

    IIS上启用Gzip压缩(HTTP压缩) 详解 一.摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 二.前言. 本文的知识点是从互联 ...

  8. apache启用gzip压缩方法

    一.gzip介绍 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台.当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小.这取决于文件中 ...

  9. apache 启用 gzip压缩

    一.gzip介绍 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台.当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小.这取决于文件中 ...

  10. Web服务器之Http压缩(GZip)

     作者:张子秋 出处:http://www.cnblogs.com/zhangziqiu/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...

最新文章

  1. Ubuntu14.04上编译指定版本的protobuf源码操作步骤
  2. 北大成功研发 “忘情水” ,可精准删除特定记忆,有望今年进行人体测试
  3. kerberos简单介绍
  4. IOS热更新-JSPatch实现原理+Patch现场恢复
  5. 【linux技术】分布式存储技术实战演练
  6. [云炬创业基础笔记]第六章商业模式测试10
  7. CodeActivity基本使用
  8. C++ 11 深度学习(四)结构、权限修饰符
  9. 决策树编程python_Python如何制定决策:编程中的控制流简介
  10. HTML5前端开发就业前景,高薪背后的原因分析!
  11. cc2530单片机是几位单片机_我的单片机学习之路(续1)
  12. matlab cy68013,基于MATLAB的码垛机械手运动学分析与仿真
  13. osm地图数据 mysql_GIS 地图数据的来源?
  14. Galaxian 小蜜蜂
  15. (详细)华为畅享6S DIG-AL00的usb调试模式在哪里打开的教程
  16. 等价无穷小代换易混淆的概念错误!!用泰勒展开,以后!
  17. 2018 蓝桥杯省赛 B 组模拟赛(一)-U型数字
  18. 泰课在线夜猫的贪食蛇
  19. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第37讲:HTTP协议请求(响应)
  20. JAVA实现城市交通查询系统

热门文章

  1. java小编程--在一个A字符串中找到与B字符串一样的,返回B字符串出现的第一个位置
  2. leetcode 75. Sort Colors | 75. 颜色分类(荷兰国旗问题,快速排序)
  3. leetcode 427. Construct Quad Tree | 427. 建立四叉树(分治法)
  4. 【Python】过滤数组中的空值(空字符串''和None)
  5. 【PAT甲级】1037 Magic Coupon (25 分) C++ 全部AC
  6. python3参考秘籍-附PDF下载
  7. 看动画学算法之:hashtable
  8. Hadoop2异常分析(一):hdfs移动数据至 hive,为什么原数据没有了?
  9. 【一起去大厂系列】深入理解MySQL中where 1 = 1的用处
  10. 5行代码解决——L1-042 日期格式化 (5分)