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

所属分类: 网页制作 / 应用技巧 阅读数: 909
收藏 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 上的转化效果都非常优秀、稳定和统一。

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

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

sitemesh教程-页面装饰技术原理及应用

Sitemesh是一种页面装饰技术:它通过过滤器(filter)来拦截页面访问,据被访问页面的URL找到合适的装饰模板等等,感兴趣的朋友可以了解下哦
收藏 0 赞 0 分享

浏览器可以注册的事件小结

我们在网页制作中经常会用到浏览器事件,这里简单的整理下方便需要的朋友
收藏 0 赞 0 分享

从image/x-png谈ContentType(s)

今天在做一个文件上传的功能的时候,发现我总是上传不了png的图片。经过调试发现,应该是在ContentType的地方判断失误了。后来百度了一下发现一个有意思的现象,我发现png的图片的ContentType并不是我在注册表中看到的image/png,而是image/x-png
收藏 0 赞 0 分享

窗口中的各种距离/滚动距离的精确计算汇总

平时在项目开发中,没少跟边距,位置,坐标什么的打交道,悲剧的是,如果你对这些东西没有非常清晰的概念,编码的时候会非常痛苦,到处找资料寻求距离的精确计算,接下来本文提供一个示意他,希望对你有帮助
收藏 0 赞 0 分享

web的各种前端打印方法之CSS控制网页打印样式

使用CSS控制打印样式,握刚刚使用时一塌糊涂,根本不知道CSS中的midia的作用是什么,问到别人说导入这个样式,还傻乎乎的不知所措,接下来介绍CSS控制网页打印样式是如何实现的
收藏 0 赞 0 分享

响应式WEB设计学习(1)—判断屏幕尺寸及百分比的使用

现在移动设备越来越普及,用户使用智能手机、pad上网页越来越普遍,但是传统的fix型的页面在移动终端上无法很好的显示。因此,Ethan Marcotte提出一种响应式web设计的概念,响应式web设计的英文为Responsive Web Design,简写为RWD,感兴趣的朋友可
收藏 0 赞 0 分享

响应式WEB设计学习(2)—视频能够做成响应式吗

除了图片以外,还有一种常见的多媒体形式是视频。有时在web设计中,根据需要会在页面中加入视频,视频大小的自适应单靠CSS本身似乎是做不到的,感兴趣的朋友可以详细了解下
收藏 0 赞 0 分享

响应式WEB设计学习(3)—如何改善移动设备网页的性能

究竟是网页中的何种元素拉低了网页在移动设备中加载的速度呢?这些元素应该做何处理以提升页面在移动设备中的整体性能?是否存在一种设计模式可以同时满足移动端及桌面端的页面设计呢?带着这些疑问开始本文之旅吧
收藏 0 赞 0 分享

网页设计必备手册 216网页安全色大全

网页安全色是指在不同硬件环境、不同操作系统和不同浏览器中都能够正常显示的颜色集合(调色板或者色谱),也就是说这些颜色在任何终端用户的显示设备上都是相同的效果
收藏 0 赞 0 分享

网页设计中设计出有层次感的界面的经验介绍

很多网友常说自己的网站为什么色彩上总是有问题,总是看起来没什么精神,没办法吸引人注意。观察了一些网友们设计的网站发现他们在用色上不够大胆,同时也缺乏对色彩层次的理解。
收藏 0 赞 0 分享
查看更多