css js 性能优化,总结前端性能优化的方法

前端里面包含的内容是丰富的,它包括HTML,CSS以及JS和图片等各种各样的资源。因此前端优化是复杂的和必要的,接下来在文章中为大家介绍前端性能优化的方法。本文在github会进行更新。

优化的目的

优化的目的在于让页面加载的更快,对用户操作响应更及时,为用户带来更好的用户体验,对于开发者来说优化能够减少页面请求数,能够节省资源。

网络优化

减少 http 请求数,css,js, image 等文件压缩合并,合理设置 http 请求缓存。

样式放头部,脚本放底部。

使用 CDN。

按需加载,显示进度条或者 loading

css优化

避免使用 CSS 表达式

尽可能减少CSS选择器的层级

减少 TABLE 布局

移除空的样式

图片在加载前提前指定宽高或者脱离文档流,可避免加载后的重新计算导致的页面回流;

JS优化

减少闭包的使用。过多使用闭包会产生很多不销毁的内存,内存过多会导致内存溢出。

避免使用iframe, iframe 会嵌入其它页面,父页面渲染的时候,同时渲染子页面,渲染进度会变慢。

减少 dom 操作,减少页面重绘和重排。使用 css3 动画

尽可能使用事件委托。事件委托可以给动态元素绑定事件,而且基于事件委托实现,整体性能会比一个一个绑定事件高50%。

注意防抖和节流

图片优化:

不用图片,尽量用 css3 代替。 比如说要实现修饰效果,如半透明、边框、圆角、阴影、渐变等,在当前主流浏览器中都可以用 CSS 达成。

使用矢量图 SVG 替代位图。对于绝大多数图案、图标等,矢量图更小,且可缩放而无需生成多套图。现在主流浏览器都支持 SVG 了,所以可放心使用!

使用恰当的图片格式。我们常见的图片格式有 JPEG、GIF、PNG。基本上,内容图片多为照片之类的,适用于 JPEG。而修饰图片通常更适合用无损压缩的 PNG。GIF 基本上除了 GIF 动画外不要使用。且动画的话,也更建议用 video 元素和视频格式,或用 SVG 动画取代。

按照 HTTP 协议设置合理的缓存。

使用字体图标 webfont、CSS Sprites 等。

用 CSS 或 JavaScript 实现预加载。WebP 图片格式能给前端带来的优化。

WebP 支持无损、有损压缩,动态、静态图片,压缩比率优于 GIF、JPEG、JPEG2000、PG 等格式,非常适合用于网络等图片传输。

图片懒加载与预加载

图片懒加载的原理就是暂时不设置图片的 src 属性,而是将图片的 url 隐藏起来,比如先写在 data-src 里面,等某些事件触发的时候(比如滚动到底部,点击加载图片)再将图片真实的 url 放进 src 属性里面,从而实现图片的延迟加载

图片预加载,是指在一些需要展示大量图片的网站,实现图片的提前加载。从而提升用户体验。常用的方式有两种,一种是隐藏在 css 的 background 的 url 属性里面,一种是通过 javascript 的 Image 对象设置实例对象的 src 属性实现图片的预加载。相关代码如下:

为什么要将图片转为base64格式

图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址;

提升性能: 网页上的每一个图片,都是需要消耗一个 http 请求下载而来的, 图片的下载始终都要向服务器发出请求,要是图片的下载不用向服务器发出请求,base64可以随着 HTML 的下载同时下载到本地.减少https请求。

加密: 让用户一眼看不出图片内容 , 只能看到编码。

方便引用: 在多个文件同时使用某些图片时, 可以把图片转为base64格式的文件, 把样式放在全局中, 比如common.css, 以后在用的时候就可以直接加类名, 二不需要多层找文件路径, 会提升效率

相关文章

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值