Node4-5静态资源服务器实战以及优化压缩文件实例内容


Posted in Javascript onAugust 29, 2019

浏览器控制台看一下RequestHeader有一个Accept-Encoding,而RespondHeaders中也会有一个Content-Encoding和他进行对应.

Accept-Encoding当我们的浏览器发起一个文件的请求时告诉服务器支持哪几种压缩方式,也就是服务器用这几种压缩方式浏览器都能解压,当服务器接收到请求后,知道浏览器支持的压缩方式,服务器就会自动识别其中一种进行压缩并且告诉浏览器自己用了哪个方式压缩,浏览器知道后就知道用哪种对应方式解压了

 Node4-5静态资源服务器实战以及优化压缩文件实例内容

 Node4-5静态资源服务器实战以及优化压缩文件实例内容

 根据拓展名限制一下支持的几钟压缩类型

defaultConfig.js

Node4-5静态资源服务器实战以及优化压缩文件实例内容

压缩方法 compress,js

//压缩的方法
/**rs 肯定需要,要知道自己需要压缩什么  客户端(浏览器支持哪几种压缩类型),
 * req 客户端再requestHeader中声明的
 * res 压缩完成之后,需要告诉浏览器使用哪种压缩类型压缩,方便浏览器用对应方式进行解压
 * */
const {
  createGzip,
  CreateDeflate
} = require('zlib')
module.exports = (rs, req, res) => {
  const acceptEncoding = req.headers['accept-encoding'];
  /* 有两种情况不能压缩
  1.浏览器已经声明不支持任何压缩方式,拿不到这个信息
  2.拿到的东西里面没有服务器支持
  */
  if (!acceptEncoding || !acceptEncoding.match(/\b(gzip|deflate)/)) {
    return rs
  } else if (acceptEncoding.match(/\bgzip\b/)) {
    {
      res.setHeader('Content-Encoding', 'gzip')
      return rs.pipe(createGzip())
    }
  }else if (acceptEncoding.match(/\bdeflate\b/)) {
    {
      res.setHeader('Content-Encoding', 'deflate')
      return rs.pipe(createGzip())
    }
  }
}

route.js 引用compress

Node4-5静态资源服务器实战以及优化压缩文件实例内容

运行结果

Node4-5静态资源服务器实战以及优化压缩文件实例内容

Node4-5静态资源服务器实战以及优化压缩文件实例内容

如果把相关压缩的代码注释掉

Node4-5静态资源服务器实战以及优化压缩文件实例内容

Node4-5静态资源服务器实战以及优化压缩文件实例内容

 

以上就是Node4-5静态资源服务器实战_优化压缩文件的全部知识点内容,感谢大家的阅读和对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 Javascript
利用jquery包将字符串生成二维码图片
Sep 12 Javascript
JavaScript使用focus()设置焦点失败的解决方法
Sep 03 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
May 26 Javascript
jQuery实现html表格动态添加新行的方法
May 28 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
javascript中闭包概念与用法深入理解
Dec 15 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 Javascript
AngularJS折叠菜单实现方法示例
May 18 Javascript
详解Vue2.x-directive的学习笔记
Jul 17 Javascript
VueCli3构建TS项目的方法步骤
Nov 07 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 #Javascript
微信小程序实现购物车代码实例详解
Aug 29 #Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 #Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 #Javascript
Angular8路由守卫原理和使用方法
Aug 29 #Javascript
Vue中的循环及修改差值表达式的方法
Aug 29 #Javascript
vue父子组件通信的高级用法示例
Aug 29 #Javascript
You might like
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
php给图片加文字水印
2015/07/31 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
JS实现滑动插件
2020/01/15 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
python3+PyQt5实现拖放功能
2018/04/24 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
python 实现端口扫描工具
2020/12/18 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
高中毕业自我鉴定范文
2013/10/02 职场文书
家长对老师的感言
2014/03/11 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
MYSQL 运算符总结
2021/11/11 MySQL
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers