博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript压缩
阅读量:2226 次
发布时间:2019-05-09

本文共 1354 字,大约阅读时间需要 4 分钟。

JavaScript压缩

      当网页浏览器请求一个资源时,它通常发送一个Accept-Encoding的HTTP头(以HTTP/1.1 开始)让网页服务器知道传输所支持的编码类型。此信息主要用于允许文档压缩以获得更快下载速度,从而改善用户体验。Accept-Encoding 的取值范围是:gzip,compress,deflate,和identity(这些值已经在以太网地址分配机构(即IANA)注册)。

      如果网页服务器在请求报文中看到这些信息头,它将选择适当的编码方法,并通过Content-Encoding 的HTTP头通知浏览器。
      gzip大概是目前最流行的编码格式。它通常可将有效载荷减少到70%,成为提高网页应用性能的有力武器。注意gzip压缩器主要用于文本报文,包括JavaScript文件。其他文件类型,如图片和PDF文件,不应该使用gzip压缩,因为它们已经压缩,如果试图再次压缩只会浪费服务器资源。
      如果您使用Apache网页服务器(目前最流行的),启用gzip压缩功能需要安装并配置mod_gzip模块(针对Apache 1.3,位于)或者mod_deflate模块(针对Apache 2)。

      由Yahoo!搜索和Google 独立完成的最新研究表明,美国大型网站提供的内容中有大约15%未经过压缩。大多数因为在请求报文中缺少Accept-Encoding 的HTTP头,它被一些公司代理、防火墙、甚至PC安全软件剔除了。虽然gzip压缩是一个惊人的网页开发工具,但还是要注意到这个事实,尽量书写简洁的代码。另一种技术是提供替代的JavaScript内容,使那些不能受益于gzip压缩的用户,可以使用更简单的用户体验(用户可以选择切换回完整版本)。

      为此,值得提到Packer (),由Dean Edwards开发的一个JavaScript紧凑工具。Packer对JavaScript压缩能够超过YUI压缩器的水平。考虑下面对jQuery库的压缩结果(版本1.3.2,下载地址):

      jQuery 120,180 bytes

      jQuery + YUI Compressor 56,814 bytes
      jQuery + Packer 39,351 bytes
      Raw jQuery + gzip34,987 bytes
      jQuery + YUI Compressor + gzip19,457 bytes
      jQuery + Packer + gzip19,228 bytes
      经过gzip压缩之后,jQuery库经过Packer或YUI压缩器产生的结果非常相近。然而,使用Packer压缩文件导致一个固定的运行时代价(在我的不落后的笔记本电脑上大约是200至300毫秒)。因此,使用YUI压缩器和gzip结合总能给出最佳结果。然而,Packer可用于网速不高或者不支持gzip压缩的情况,解压缩的代价与下载大量代码的代价相比微不足道。为不同用户提供不同JavaScript的唯一缺点是质量保证成本的增加。

原创文章,转载请注明: 转载自
本文链接地址:

转载于:https://www.cnblogs.com/SophiaTang/archive/2012/07/21/2602422.html

你可能感兴趣的文章
【数据库】关系数据库和非关系数据库的优缺点
查看>>
【数据结构】动态顺序表
查看>>
Markdown的基础使用
查看>>
Linux基础命令
查看>>
【C语言】交换两个数值的三种方法
查看>>
【数据结构】栈的简单理解以及对栈的基本操作
查看>>
【数据结构】简单不带环迷宫的实现(用栈实现)
查看>>
【C语言】简单的了解递归(求斐波那契,n的阶乘,字符串长度,把一个整型(无符号),转化为字符型并打印出来)
查看>>
【数据结构】动态栈的实现
查看>>
【数据结构】简单的迷宫(用递归实现)
查看>>
【数据结构】队列的基本认识和队列的基本操作
查看>>
【数据结构】循环队列的认识和基本操作
查看>>
【LeetCode】无重复字符的最长子串
查看>>
时间复杂度
查看>>
【C++】动态内存管理 new和delete的理解
查看>>
【Linux】了解根目录下每个文件的作用
查看>>
【Linux】进程的理解(一)
查看>>
【Linux】进程的理解(二)
查看>>
【C语言】深度理解函数的调用(栈帧)
查看>>
【Linux】进程的理解(三)
查看>>