绘制在一张大图上
1、尽量和并和压缩css和js文件。(将css文件和并为一个。将js合并为一个)
原因:主要是为了减少http请求次数以及减少请求资源的巨细
打包工具:
webpack
gulp
grunt
. ....
2、尽量所使用的字体图标或者SVG图标来取代传统png图
因为字体图标或者SVG是矢量图,代码编写出来的,方大不会变形,而且衬着速度快
3、给与图片的懒加载(延迟加载)
目的为了,减少页面第一次加载过程中http的请求次数
具体法式:
1、页面开始加载时不去发送http请求,而是安排一张占位图
2、当页面加载完时,并且图片在可视区域再去请求加载图片信息
4、能用css做的效果,不要用js做,能用原生js做的,不要等闲去使用第三方插件。
制止引入第三方大量的库。而本身却只是用里面的一个小成果
5、使用雪碧图或者是说图片精灵
把所有相对较小的资源图片,绘制在一张大图上,只需要将大图下载下来,然后操作
图片定位来讲小图展此刻页面中(background-position:百分比,数值)
6、减少对cookie的使用(最主要的就是减少本地cookie存储内容的巨细),因为客户端操纵cookie的时候,这些信息总是在客户端和处事端通报。如果上设置不当,每次发送
一个请求将会携带cookie
7、前端与后端进行数据交互时,对付多项数据尽可能基于json格局来进行传送。相对付使用xml
来说传输有这个优势
目的:是数据措置惩罚惩罚便利,资源偏小
8、前端与后端协商,合理使用keep-alive
9、前端与处事器协商,使用响应资源的压缩
10、制止使用iframe
不只欠好管控样式,而且相当于在本页面又嵌套其他页面,消耗性能会更大。因为还回去加载这个嵌套页面的资源
11、在基于ajax的get请求进行数据交互的时候,按照需求可以让其孕育产生缓存(注意:这个
缓存不是我们常看到的304状态码,去浏览器本地取数据),这样不才一次从不异地点获取是数据
时,取得就是上一次缓存的数据。(注意:很少使用,一般城市清空。按照需求来做)
1、在js中尽量减少闭包的使用
原因:使用闭包后,闭包地址的上下文不会被释放
2、减少对DOM操纵,主要是减少DOM的重绘与回流(重排)
关于重排(回流)的疏散读写:如果需要设置多个样式,把设置样式全放在一起设置,不要一条一条的设置。使用文档碎片或者字符串拼接做数据绑定(DOM的动态创建)
3、在js中制止嵌套循环和"死循环"(一旦遇到死循环,浏览器就会直接卡失)
4、把css放在body上,把js放在body下面
让其先加载css(注意:这里关于优化没有多大关系)
5、减少css表达式的使用
6、css选择器解析法则所示从右往左解析的。减少元素标签作为对后一个选择东西
7、尽量将一个动画元素单独设置为一个图层(制止重绘或者回流的巨细)
注意:图层不要过多设置,否则不单效果没有到达反而更差了
8、在js封装过程中,尽量做到低耦合高内聚。减少页面的冗余代码
9、css中设置定位后,最好使用z-index转变盒子的层级,让盒子不在不异的平面上
10、css导入的时候尽量减少@import导入式,因为@import是同步操纵,只有把对应的样式导入后,才会继续向下加兹安,而link是异步的操纵
11、使用window.requestAnimationFrame(js的帧动画)取代传统的按时器动画
如果想使用每隔一段时间执步履画,应该制止使用setInterval,尽量使用setTimeout
取代setInterval按时器。因为setInterval按时器存在毛病:可能造成两个动画间隔时间
缩短
12、尽量减少使用递归。制止死递归
解决:建议使用尾递归
13、基于script标签下载js文件时,可以使用defer或者async来异步加载
14、在事件绑定中,尽可能使用事件委托,减少循环给DOM元素绑定事件措置惩罚惩罚函数。
15、在js封装过程中,尽量做到低耦合高内聚。减少页面的冗余代码
16、减少Flash的使用
三、存储1、结合后端,操作浏览器的缓存技术,做一些缓存(让后端返回304,报告浏览器去本地拉取数据)。(注意:也有毛病)可以让一些不太会转变的静态资源做缓存。好比:一些图片,js,cs
2、操作h5的新特性(localStorage、sessionStorage)做一些简单数据的存储,,
制止向后台请求数据或者说在离线状态下做一些数据展示。
1、制止使用iframe不只欠好管控样式,而且相当于在本页面又嵌套其他页面,消耗性能会更大。因为还回去加载这个嵌套页面的资源
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32847.html