详解Web前端性能优化详解之资源合并与压缩

所属分类: 网页制作 / 应用技巧 阅读数: 831
收藏 0 赞 0 分享

资源合并与压缩两个目的

  1. 减少http请求数量
  2. 减少请求资源的大小

google首页案例学习

  1. html压缩
  2. css压缩
  3. js的压缩
  4. 文件合并
  5. 开启 gzip

一、html 压缩

图一是新浪的首页显示是没有压缩的,图二的谷歌的首页是经过压缩的。

HTML代码压缩就是压缩这些在文本文件中的意义,但是在HTML中不显示的字符,包括空格,制表符,换行符等,还有一些其他意义的字符,如
HTML 注释也可被压缩。

如何进行 html 压缩

  1. 使用在线网站进行压缩
  2. nodejs提供了 html-minifier 工具
  3. 后端模板引擎渲染压缩

二、html 压缩

  1. 无效代码删除
  2. css 语义合并

如何进行 html 压缩

  1. 使用在线网站进行压缩
  2. 使用 html-minifier 对 html 中的css进行压缩
  3. 使用 clean-css 对css进行压缩

三、Js 压缩与混乱

  1. 无效字符的删除
  2. 剔除注释
  3. 代码语义的缩减和优化
  4. 代码保护

如何进行 js 压缩和混乱

  1. 使用在线网站进行压缩
  2. 使用 html-minifier 对 html 中的 js 进行压缩
  3. 使用uglifyjs2 对 js进行压缩

三、文件合并

文件合并与不合并对比

  1. 文件与文件之间有插入的上行请求,增加了 N-1 个网络延迟
  2. 受丢包问题影响更严重
  3. 经过代理服务器可能会被断开

文件合并存在的问题:

  1. 首屏渲染问题
  2. 缓存失效问题

解决文件合并存在的问题:

  1. 公共库合并
  2. 不同页面的合并
  3. 见机行事,随机应变

如何进行 js 压缩和混乱

  1. 使用在线网站进行压缩
  2. 使用 nodejs 实现合并

图片相关的优化
png8/png24/png32之间的区别

  1. png8 —— 256色 + 支持透明
  2. png24 —— 2^24色 + 不支持透明
  3. png32 —— 2^24色 + 支持透明
每种图片格式都有自己的特点,针对不同的业务场景选择不同的图片格式很重要

不同格式图片常用的业务场景

  1. jpg —— 大部分不需要透明图片的业务场景
  2. png 支持透明,浏览器兼容好
  3. webp压缩程度更好,在 ios webview 有兼容性疸
  4. svg 矢量图,代码内嵌,相对较少,图片样式相对简单的场景

不同格式图片常用的业务场景

  1. jpg —— 大部分不需要透明图片的业务场景
  2. png —— 大部分需要透明图片的业务场景
  3. webp —— 安卓全部
  4. svg矢量图 —— 图片样式相对简单的业务场景

进行图片压缩

针对真实图片情况,舍弃一些相对无关紧要的色彩信息

CSS雪碧图

把你的网站上用到的一些图片整合到一张单独的图片中

优点

减少你的网站的HTTP请求数量

缺点

整合图片比较大时,一次加载 比较慢

Image inline

将图片的内容内嵌到html当中,减少你的网站的HTTP请求数量

在安卓下使用webp

WebP 的优势体现在它具有更优的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量;同时具备了无损和有损的压缩模式、Alpha 透明以及动画的特性,在 JPEG 和 PNG 上的转化效果都非常优秀、稳定和统一。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

CSS中浏览器对尺寸和宽高解释差异的解决方法

不同的浏览器对margin、padding、height、width 等属性的解释有很大的偏差。有时我们发现同样的两列布局,在不同的浏览器中两列长短不一,类似的情况太多了,如此困扰大家的麻烦,如何解决?
收藏 0 赞 0 分享

网页变灰的笔记 细节问题处理

grayscale.js这个文件是用来兼容各个浏览器的,在一般情况下,使用它绝对不会有问题,但是在实际的操作中,还是遇到了一些麻烦。
收藏 0 赞 0 分享

页面中marquee与flash同时存在时的冲突解决方案

冲突的症状主要表现在FLASH按钮一直跳动,不稳定,影响网页美观及正常访问。
收藏 0 赞 0 分享

提高网站访问速度的六种方法

以下6种优化方法都是前端的,前端优化的意义在于减少http请求,减少网站前端程序组成的体积。
收藏 0 赞 0 分享

新鲜出炉的有用图标集25组 国外下载

恰当的图标(ICON)能使网站更具活力 曾几何时,现在的网站图标大同小异,我们的眼睛早已见惯不惊。于是,这里收集了25套专业设计的全新的图标集,希望对你有用!
收藏 0 赞 0 分享

新手建站教程 十天学会做网站

十天学会做网站教程采用最通俗易懂的语言、从最基本的开始,带领大家开始建站。教程由许耀鹏历时半年时间写成。是非常好的新手建站入门教程。
收藏 0 赞 0 分享

新手建站入门教程 建站需要的条件和工具

很多新手在论坛都会说,我从来没做过网站,做网站需要些什么条件啊,会不会很难啊?
收藏 0 赞 0 分享

新手建站入门教程 域名的解析与绑定

昨天我们讲到了建立一个属于自己的网站需要的条件和工具,里面讲到首先需要注册一个属于自己的域名,和需要购买一个虚拟主机。(详情请看:新手建站第一帖:建站需要的条件和工具)
收藏 0 赞 0 分享

新手建站入门教程③ 别名(CNAME)记录和URL转发

在上一帖中为大家介绍了域名的解析和A记录解析的方法,今天我就为大家讲解一下另一种解析方法:别名(CNAME)记录。同时为大家讲解下URL转发的好处和方法。
收藏 0 赞 0 分享

新手建站入门教程④:如何绑定子目录

去买空间的时候,我想很多朋友都已经注意到了,有的空间介绍上会有类似于“支持绑定1个子目录”、“赠送1个子目录”等词。那么这些介绍是什么意思呢?
收藏 0 赞 0 分享
查看更多