关于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>
分享到:
相关推荐
通过理解这些知识点并正确地在JBoss中配置GZIP压缩,可以有效地提升网站的访问速度,提供更好的用户体验,同时节省服务器带宽。不过,需要注意的是,优化的过程应当结合具体应用的实际情况进行,以达到最佳效果。
总之,批量使用Gzip压缩JavaScript文件可以有效地减小文件体积,提高网站加载速度,同时通过编写批处理脚本,可以自动化这个过程,节省时间和资源。理解这个过程和相关工具的使用,对优化Web应用性能和提升用户体验...
在IT行业中,数据压缩是一种常见的技术,用于减小文件大小,提高存储效率和网络传输速度。pako是一个高性能的JavaScript库,它实现了多种压缩和解压缩算法,包括gzip。本项目着重介绍了如何使用pako库处理gzip压缩...
"gzjs"这个格式通常指的是JavaScript文件经过Gzip压缩后的结果。在本篇文章中,我们将探讨如何将JS文件压缩成gzjs格式,以及可以使用的工具。 首先,Gzip是一种数据压缩算法,广泛应用于Web服务器以减小文件传输...
JavaScript(简称JS)是...通过压缩JS文件,我们可以降低网络传输成本,提高用户体验,使网站在各种设备上都能快速加载。同时,了解如何利用批处理文件和命令行工具进行自动化处理,对于开发者来说也是非常重要的技能。
在现代Web开发中,为了提高页面加载速度,减少网络传输的数据量,开发者通常会使用Gzip工具对JavaScript和CSS文件进行压缩。Gzip是一种广泛使用的数据压缩格式,它能够有效地减小文件大小,从而加快了文件在网络上的...
在现代Web开发中,优化前端项目以提高加载...Nginx的gzip压缩和Vue CLI的打包过程都是为了提高网站的加载速度,提升用户体验。通过了解这些技术细节,开发者可以更好地优化自己的Web应用,使其在性能上达到最佳状态。
压缩JS文件的原理类似,但更复杂,因为它需要考虑到代码的可执行性。JS压缩通常包括变量名混淆、去除注释和空白、以及优化代码结构。这些操作可以在不改变代码功能的情况下,大幅度减小文件大小。YUI Compressor也能...
GZIP压缩是一种网络数据压缩技术,它能够显著减少网页传输的数据量,从而提高页面加载速度,降低服务器带宽使用,提升用户体验。本文将详细讲解如何在Windows IIS上启用GZIP压缩以及涉及的相关知识点。 首先,我们...
Gzip 压缩是一种常用的网页压缩技术,通过减少网页的大小,提高网页的加载速度。然而,有些情况下,Gzip 压缩可能会失效。本文将提供一个终极解决方案,帮助您解决 Gzip 压缩无效的问题。 首先,我们需要了解 Gzip ...
为了达到优化和提高JavaScript运行速度的目的,有许多策略和技术可以应用,以下将详细阐述这些知识点。 首先,要确保JavaScript的源码尽可能地高效和简洁。可以通过移除不必要的空格、换行和注释来达到这一点。另一...
在IT行业中,优化资源加载速度是提升网站性能的关键因素之一,尤其是对于JavaScript(JS)这样的脚本文件。"gzip124xN_源文件"是一个针对JS文件压缩的工具,旨在减小文件大小,加快网页加载速度。下面将详细介绍这个...
【提高.NET运行速度】 在.NET开发中,优化代码性能是至关重要的,特别是对于Web应用程序,因为这直接影响到用户体验。以下是一些关键的优化策略,旨在提高.NET程序的运行效率: 1. **避免使用ArrayList**: ...
虽然 gzip 压缩可以显著提高网页加载速度,但压缩和解压缩也会消耗 CPU 资源。因此,在高负载的服务器环境中,需要平衡压缩带来的带宽节省和额外计算开销。此外,对于已经很小的文件或者已经经过压缩的文件(如 JPEG...
2. **gzip压缩**:为了提高网站性能,Nginx提供了gzip静态内容压缩功能,可以减小传输数据量,加快页面加载速度。在Nginx配置文件中,我们需要添加或修改以下部分来启用gzip: ```nginx gzip on; gzip_types text...
为了提高网站性能,开发者通常会采用JS压缩方法来减小文件大小。本文将详细探讨JavaScript压缩的方法、原理以及如何实施。 1. **代码混淆(Obfuscation)** 代码混淆是一种压缩技术,它通过重命名变量和函数名,...
在现代Web开发中,为了提高页面加载速度和减少网络带宽消耗,通常会采用内容压缩技术。Docker中的Nginx服务器作为一个流行的...完成这些步骤后,重启Nginx容器,GZIP压缩就会生效,从而提高网站的加载速度和用户体验。
6. **GZIP压缩**:除了JS和CSS本身的压缩,TBCompressor 可能也支持开启服务器端的GZIP压缩,通过在网络传输前先对文件进行压缩,进一步减小传输数据。 7. **预处理支持**:对于CSS,它可能支持Sass、Less等预...
压缩后的JS文件不仅可以加快页面加载速度,还能提高安全性,因为恶意用户更难以阅读和理解混淆后的代码。 常见的JS压缩工具有很多,例如: 1. **UglifyJS**:这是一个流行的JavaScript压缩器,可以删除未使用的...