关于Gzip压缩js文件提高网站运行速度

关于Gzip压缩js文件提高网站运行速度

 

 

一、为什么要压缩Js文件?

:我们要知道一个服务器在响应客户端请求的效率上,很大一部分取决于界面所需的css、js等文件的大小以及数量。那么对于这些可编辑文件进行压缩,便能够很好的提高

服务器响应客户端请求的效率,从而达到优化的效果。

 

二 、为什么要使用GZIP?

:Gzip是一个非常成熟的文件压缩工具,且客户端浏览器能够自动(自动:需在服务器中配置响应的头部信息)解压Gzip压缩的文件。

 

三、如何下载GZIP,及使用GZIP?

:1.下载地址:www.gzip.org 下载最新GZIP工具包,主要的就是gzip.exe可执行程序。

 2.在下载的gzip文件加中有一个关于执行gzip程序相关选项信息的DOC文档。

 

 3.我们主要使用gzip对js文件进行压缩处理。当你想执行压缩操作的时候你只需简单的将js文件拖动到gzip.exe文件上,命令窗口闪过便会在你的js文件目录中看见

 一个xx.js.gz的压缩文件包,之后我们将xx.js.gz重命名为xx.gzjs.

   如果你需要在执行压缩的时候带参数选项,你可以在cmd中输入 gzip [options] 压缩文件名(同目录不需要写路径) [压缩后的文件名称] 即可。

四、拦截压缩文件配置请求响应信息。

:为什么要拦截?为了配置请求响应信息,告诉浏览器文件类型。让浏览器自动解压缩文件。

 

 

   代码如下:

JavaCode:

 

package org.viancent.filter.gzfilter;

import java.util.*;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("unchecked")
public class GzFilter implements Filter {
	private Map headers = new HashMap();

	@Override
	public void destroy() {
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// 判断request的类型
		if (request instanceof HttpServletRequest) {
			// 强制转换请求类型,调用doFilter重载方法向响应头部添加配置信息
			doFilter((HttpServletRequest) request,
					(HttpServletResponse) response, chain);
		} else {
			// 执行下一步
			chain.doFilter(request, response);
		}

		/*
		 * 这里是第二种简易写法,直接进行响应头信息设置。使用这种写法便不需要在web.xml中配置初始化参数等等。 缺点就是灵活性不够
		 */
		// ((HttpServletResponse) response).setHeader("Content-Encoding",
		// "gzip");
		// chain.doFilter(request, response);
	}

	public void doFilter(HttpServletRequest request,
			HttpServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		// 设置请求的编码格式
		request.setCharacterEncoding("GBK");
		// 使用Map调用其entrySet()返回一个Set<Map.Entry>的集合,Map.Entry为Map的成员内部类,Map.Entry提供两个方法getKey(),getValue()
		for (Iterator it = headers.entrySet().iterator(); it.hasNext();) {
			Map.Entry entry = (Map.Entry) it.next();
			// 循环配置响应头部信息
			response.setHeader((String) entry.getKey(),
					(String) entry.getValue());
		}

		// 执行下一步
		chain.doFilter(request, response);
	}

	@Override
	public void init(FilterConfig request) throws ServletException {
		// 获取headers初始化属性值 对应
		/*
		 * <init-param> <param-name>headers</param>
		 * <param-value>Content-Encoding=gzip</param-value> </init-param>
		 */
		String headerStr = request.getInitParameter("headers");
		// 切割初始化参数headers的数据信息
		String[] headers = headerStr.split(",");
		// 解析web.xml中Filter配置标签中的初始化数据信息
		/*
		 * 在这里提供了一个配置所有相应头部信息的扩展功能,例如可以在xm文件中配置多个参数信息
		 * <param-value>Content-Encoding=gzip,cache=nocache</param-value>
		 */
		for (int i = 0; i < headers.length; ++i) {
			String[] temp = headerStr.split("=");
			// 将配置信息通过=分割后以键值对的形式保存 例如:headers.put("Content-Encoding","gzip");
			this.headers.put(temp[0].trim(), temp[1].trim());
		}
	}

}

web.xml:
			  <filter>
				<filter-name>gzFilter</filter-name>
				<filter-class>org.viancent.filter.gzfilter.GzFilter</filter-class>
				
				<init-param>
					<param-name>headers</param-name>
					<param-value>Content-Encoding=gzip</param-value>
				</init-param>
			  </filter>
			  
			  <filter-mapping>
				<filter-name>gzFilter</filter-name>
				<url-pattern>*.gzjs</url-pattern>
			  </filter-mapping>
Jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> //如果解压出来的js文件出现乱码,请将所有的格式进行统一,尤其是在编译js文件的时候
	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
	<html>
		<head>

		<title>My JSP 'index.jsp' starting page</title>
		</head>
	<script type="text/javascript"
		src="<%=request.getContextPath()%>/userjs/ext-all-debug.gzjs" charset="GBK"></script>//保持编码格式
		<body onload="showMessage()">
		</body>
	</html>

 

掌握JavaScript压缩:通过gzip提高网站性能 LZ77算法是一种基于字典的压缩方法,它利用滑动窗口机制来创建一个“字典”,并存储之前出现过的字符串序列。滑动窗口是一个固定大小的数据缓冲区,它存储了即将压缩数据的前面部分,这些数据被用作参考以查找重复的序列。在LZ77算法中,每当需要压缩新的输入数据时,算法会尝试在滑动窗口中找到与输入数据最匹配的最短字符串序列。这个序列由两部分组成:前向引用(也称为偏移量)和匹配长度。前向引用表示在滑动窗口中距离当前点多远的地方开始了一个匹配字符串,匹配长度则说明匹配字符串的长度。 阅读详情

相关推荐

利用JAVASCRIPT即你想那个GZIP压缩与解压缩

利用JAVASCRIPT即你想那个GZIP压缩与解压缩 最近流行的网络游戏(FLASH)数据传输都是用GZIP进行压缩与解压缩的,在客户端FLASH对与服务器交互的数据进行解压缩,

JS GZIP压缩,GZIP解压

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 GZIP压缩,GZIP解压需要用到 pako.js 文件:下载地址:https://download.youkuaiyun.com/download/qq_35713752/10627338 使用方法: JS压缩和解压: var pako = require('../../utils/pako.min.js...

a_靖的博客 2万+

js压缩gzip格式

js压缩成gzip格式,例如:310kb js 文件压缩后 45KB..降低传输量,提高系统性能。 内含:gzip安装程序 以及操作手册实例讲解。

用Gzip进行js的超强压缩

Gzip的官方网址为: http://www.gnu.org/software/gzip/ Gzip的使用很简单 解压至某个目录,会看到有一个Gzip.exe文件,然后在命令窗口进入该目录,执行 gzip ext-all.js ext-all.js马上变成为ext-all.js.gz 大小从原来600多k摇身一变成了160多k,简直压细小很多。这回下载速度就非常快了。 那么浏...

hyb_jackson的博客 726

ZYQN7000系列VxWorks驱动开发:VxWorks系统移植

文章目录ZYQN7000驱动开发:VxWorks系统移植1.硬件环境2.编译vsb和vip工程2.1修改设备树文件2.2添加调试打印组件3.选择uboot来启动VxWorks内核4.尝试在开发板上启动内核4.1 拷贝镜像和设备树至SD卡4.2开发板上电4.2.1 uboot成功启动4.2.2 启动VxWorks5.添加shell和cmd组件 ZYQN7000驱动开发:VxWorks系统移植 1.硬件环境 正点原子领航者开发板 2.编译vsb和vip工程 vsb和vip工程的编译过程可以参考之前的文章,htt

明故宫的记忆 5504

SAP BAPI调用避坑指南:处理MD61/MD62计划独立需求时,这些参数和返回值你必须检查

本文详细解析了SAP BAPI调用中处理MD61/MD62计划独立需求的关键参数和返回值检查要点,包括版本控制、日期类型和删除标记等核心参数设置,以及常见错误排查和高级调试技巧,帮助开发者高效管理需求计划数据。

weixin_30316097的博客 610

推荐项目:gzip-js - 浏览器中的GZIP压缩库

推荐项目:gzip-js - 浏览器中的GZIP压缩库 1、项目介绍 gzip-js 是一个完全由JavaScript实现的GZIP文件格式库。它采用DEFLATE算法对数据进行压缩,将强大的GZIP压缩功能带入了浏览器环境。尽管这个库不是为了服务器端生产代码设计的,并且在标准兼容性上可能不完美,但它的目标是为前端开发者提供一个方便的解决方案。 2、项目技术分析 gzip-js 的核心是一个名为 ...

gitblog_00068的博客 883

嵌入式接口通识知识之PCIe接口

PCIe x1接口是最常见的一种,插槽的长度是最短的,仅有25mm。PCIe x4接口有四个数据通道,提供比x1接口更高的带宽,插槽的长度为39mm,分为前后两组,一组22根针脚用于供电,剩下的42根针脚是数据针脚。插槽全长89mm,有164根针脚,分为前后两组,较短的插槽有22根针脚,主要用于供电,较长的插槽142根,主要用于数据传输,具有16通道所带来的高带宽。PCIe x8接口有八个数据通道,插槽全长56mm,有98跟针脚,分为前后两组,较短的22根针脚用于供电,剩下的76根针脚是数据针脚。

2301_76587520的博客 1305

前端性能优化之gzip压缩(压缩js、css、HTML,千万不能压缩图片!)

GZIP主要用来压缩html,css,javascript等静态文本文件,GZIP压缩的比率通常在3~10 倍之间,压缩后的体积能达到只有原本的30%左右,这样就能大大节省服务器的网络带宽和大大提升浏览器的浏览速度,如果项目够大,这个节省的时间就非常可观了!废话不多说上步骤: 1、安装插件 npm install compression-webpack-plugin -D 2、在vue.config.js文件里添加以下代码 const CompressionWebpackPlu...

前端攻城狮 7827

eDP/DP接口简介

目前,在视频传输协议以及接口领域,外部接口主要是DP与HDMI两分天下,当然之前出现过很多接口-VGA, DVI等等,最新平台基本以这两个为主;笔记本内部接口就基本上使用eDP((Embedded Display Port))作为标准接口来驱动液晶屏了。那么问题来了,eDP和DP,是完全兼容的么?eDP,DP,HDMI,这三种接口的显示器,可以插在同一个接口上使用么?这篇文章,就会从硬件和一部分协议的角度分析一下这三大协议。

weixin_50518899的博客 2万+

一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码

本文详细介绍了如何将STM32程序从Keil迁移到国产免费工具Trae,并利用AI进行代码修改的全过程。

水滴爬呀爬 4881

php网站的优化的方法,PHP网站基础优化方法

简介以下这些基础技巧可以让你的PHP网站运行得更快一些。1、使用GZip在每一个PHP页面顶部加入以下代码:使用该代码后服务器会压缩所有需要传送到客户端的代码,并在浏览器中进行解压,从而使网站运行速度加快。这一功能还可以节省网站空间的流量。2、不要滥用Javascript和Ajax只在需要的时候才使用Javascript和Ajax,千万不要滥用它们。有些网站使用了太多不必要的Ajax动画,或使用A...

weixin_40004212的博客 434

23 中望CAD二次开发(ZRX C++)-自定义实体(二)

本文详细介绍了自定义图形实体,如何实现几何变换、捕捉、节点编辑,并介绍了CAD代理的概念。

cilvsuanna的博客 437

学习Nginx(九):提升网站速度之gzip压缩

Nginx的gzip压缩功能可以显著提升网站的速度,主要原理是通过默认集成的 ngx_http_gzip_module 模块拦截请求,并在服务器端对传输的内容(如CSS、JS、XML、HTML等静态资源)进行gzip压缩。在 Nginx 中,ngx_http_gzip_static_module 是一个可选的模块,用于服务预先压缩的静态文件(如 .gz 结尾的文件)。需要注意的是,gzip压缩响应内容可以减少传输的数据量,由于压缩和解压缩都需要计算资源,会增加服务器的CPU使用率。

Linux技术宅 2046

由Sensor光谱响应曲线联想到的白平衡增益计算

由Sensor光谱响应曲线联想到的白平衡增益计算 由于传感器硬件的限制,传感器在某个预定波长范围内的响应不可能是100% 响应。现实中都是类似于正态分布的单峰函数。如果仅做粗略计算,由一个中心波长和半高宽(也成半波宽)完全可以由数学公式计算出一个高斯分布曲线。这个分布曲线就叫波谱响应函数。 波谱响应函数反映了传感器通道获取能量的情况。实际上每个传感器厂商都提供了具体的光谱响应函数,一般由两列数据组成,一列数据是波长,另一列数据是相对响应强度。下图某sensor光谱的响应的波谱响应函数。 ...

大熊 7488

android 9.0Settings休眠时间项(屏幕超时)添加永不休眠功能

在9.0的系统产品开发中,系统中默认息屏时间为1分钟,可以通过在Setting中的息屏时间选项设置对应的息屏时间,但是在开发平板类的产品中,需要实现永不休眠的功能,所以需要在Settings中的息屏时间中添加永不休眠时间这一项来实现这个功能,接下来看息屏时间的相关功能,来添加这个功能

安卓兼职framework和app工程师的博客 2056

nginx启用gzip压缩js等文件

GZip压缩,是一种网站速度优化技术,也是一把SEO优化利器,许多网站都采用了这种技术,以达到提升网页打开速度、缩短网页打开时间的目的。我们的图书馆系统,刚开始没有启动gzip压缩的时候,差不多二十多秒,才能完全打开,经过gzip压缩后,测试4.2s就可以完全打开.通过这两组数据的对比,gzip压缩优化的效果还是十分明显的,也正因为有效果,所以大部分网站都使用了该项技术进行速度优化。如果你的网站速度

odelia的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

服务器网站gzip压缩,网站实现Gzip网页压缩的方法与步骤 提高网页浏览速度

首先来了解一下网站启用Gzip压缩的好处,它的好处显而易见,提高网页浏览速度,无论是之前说的精简代码、压缩图片都不如启用Gzip来的实在。下图为启用Gzip后的效果。第一步:打开IIS,启用HTTP压缩服务右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和" 压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制";第二步:启用web服务在 Web...

weixin_39534100的博客 1409

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Nginx配置gzip压缩,提高网站访问速度

Nginx配置gzip压缩,提高网站访问速度

wk的专栏 1776

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Nginx优化之gzip压缩提升网站速度

gzip配置的常用参数gzip on|off;  #是否开启gzipgzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)gzip_disable #正则匹配UA 什么样的Uri不进行gzipgzip_min_length 200 # 开始压缩的最小长...

鲁花花生油 1万+

gzip 压缩 css,js 等文件

前几天写了一篇合并css和js文件,加快浏览速度的文章,感觉上速度确实有点提高,而最后把速度仍然比较慢归因于国外服务器数据传输的速度慢 !后来在Storyday那里看到一篇wordpress提速的文章,压缩css文件和js来提速。其实很早看关于wp优化的文章的时候就看到过对css和js进行压缩来提速,但是一直都不以为然。因为我想css和js文件经过合并,然后使用CSS Tweak和Shrink

美谷 nice Valley 1414

nginx开启gzip压缩, 提升网站访问速度

网站的访问速度都SEO的基础,这篇文章介绍了如何开启nginx的gzip压缩, 以提升网站访问速度。基本概念首先我们要了解gzip压缩的概念, 我们网站的CSS, JS, HTML, JSON等文本文件会包含大量的空格和换行符, 这些空格和换行符对开发者阅读是非常有利的, 但对浏览器完全是累赘, gzip压缩就是把这些累赘给删除掉, 从而缩小文件体积, 以达到提升网站访问速度的目的.如果文件是二进制, 使用gzip压缩则没有效果, 比如图片, 视频等, 所以大家不要使用gzip来压缩二进制文件.当然gzip

qq_39482708的博客 1659

linux 提高 gzip 速度,如何通过gzip和nginx来提高网站打开速度及整体性能

要知道,网站的打开速度取决于浏览器打开下载的网页文件大小。如果传输的页面内容文件减少,那你网站的打开速度一定会加快。特别是手机端的用户,打开网站速度受限于移动端网络,所以压缩网站页面内容显得至关重要。gzip是一种非常流行的数据压缩方式。你可以在nginx配置中开启gzip来压缩网页文件。然后,这些文件又由浏览器解压缩,文件不会受任何。但是压缩文件是会占用服务器资源,所以最好压缩那些效果比较好的文...

weixin_31282459的博客 626

nginx开启Gzip压缩

nginx开启Gzip压缩

CY的博客 3万+
上一篇: Java 内部类
下一篇: Java 排序方法
perfectPlans
博客等级 码龄14年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值