web页面性能优化方法总结
最近老大给我布置了一道作业,让我去想想有哪些办法可以优化web页面的性能,回头一看,做了这么多年的前端开发,多少还是知道一些常规的性能优化策略,以下是我对性能优化的一个总结,共13点,如果描述错误,欢迎指正:
1. 使用cdn
对于需要展示大量图片等静态资源的页面,可以将图片等静态资源放在cdn上,这样可以加速对资源的获取。
2. 合并http请求
比如对于较小的图片,可以将其转换成base64的文本放在CSS文件中;对应多个后台数据请求,可以要求后台合并;使用打包工具,将页面的CSS和js文件合并;使用雪碧图合并小图标。这样可以减少http请求数量。
注意:合并后的文件过大也是会影响性能的,因为多个请求同时发起至少可以保持请求是并发,节省总体时间消耗,如果合并后的文件太大,反而会让一个请求时间过长,导致浏览器总体等待时间过长。
3. 开启http的keep alive
让HTTP请求可以复用TCP连接,因为TCP连接建立很耗时。
4. 首屏使用ssr
我理解主要有以下两个优点:
第一:节约首屏请求时间。在服务器发起第一次首屏需要数据的请求,由于内网服务器之间距离短,切服务器带宽大,传输数据快,因此从首屏数据传输来说,服务端占优势;
第二:加少首屏页面回流。服务端利用其缓存能力和机器性能优势,装配好首屏的HTML,返回给浏览器,浏览器可以直接解析渲染,不需要额外对页面进行回流,首屏体验更佳。
5. 使用预加载资源
对于需要滚动加载图片或者dom资源的页面,可以在首屏后预加载几页资源,在用户滚动到一定距离的时候,再次请求并加载部分资源。
6. 节流和防抖
对于页面上可能频繁触发的事件,使用节流或者防抖方案(具体使用那种视情况而定)。频繁触发的事件不仅会消耗计算资源,由于js是单线程执行,还可能会影响阻塞用户的操作。
7. 使用缓存
对于静态资源请求可以和服务器约定使用304缓存资源。当文件不变的情况下,不至于每次都让服务器返回数据,而是直接读取本地缓存。
8. 使用http2.0
主要有以下几个优点。
第一:头部压缩,2.0会对http请求的头部进行压缩(使用的是约定简化字典技术);
第二:数据并发传输,2.0使用的二进制分帧传输技术,相对于http1.1的文本传输技术,可以针对单个http请求进行并发传送(我理解应该是二进制码更容易拆分成相同大小的块,并发传输后,在接收端更容易拼装在一起,然后还原)。
第三:多路复用(1.1其实也有类似效果,比如keep alive,但是由于2.0使用分帧技术,多个http请求之间可以更好的支持复用连接)。
此外http2.0还支持服务端推送
9. 异步请求
当后边的程序不需要等待前边数据请求的时候,可以将请求设置成异步。如果有多个请求,可以使用Promise.all()同时进行多个异步请求,又可以等待到每个异步请求结束和才去处理需要等待的任务。
10. DNS预解析
如果某个资源在将来可以反复用到,或者页面返回被跳转到,可以开启dns预解析(让浏览器缓存dns解析结果)。对于https的页面,加上
<meta http-equiv="x-dns-prefetch-control" content="on">
或者直接在请求资源标签中加入:
<link rel="dns-prefetch" href="//example.com">
页面会自动对标签里的链接进行dns预解析
11. http请求正文压缩
常见的gzip、deflate 和 deflate-raw压缩方法。压缩后可以减少数据传输量,节约服务器带宽资源和用户网络资源。
12. 使用web worker开启子js线程
用来计算可能占用时间较大的操作,比如说md5、sha转换,加密操作等。这样不至于在计算时候阻塞主js线程执行。
13. 使用server worker技术
这是一种新的技术,其实我也不太了解,只是觉得可以用它来做web页面的类似离线的缓存(类似强缓存,单肯定还是有差异的)。
web页面性能优化方法总结相关推荐
- 列举6个常见且实用的Web前端性能优化方法
在如今这个信息爆炸的时代,人们的节奏总是快速的,对于一个网站的耐心毕竟是有限的可怜的,如果网站不进行优化必定会流失相当一部分的客户,带来不必要的损失.那么从Web前端的性能优化上来说有哪些常见.实用的 ...
- web页面性能优化及SEO优化
web页面性能优化 前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网 ...
- web 页面性能优化
web 页面性能优化 性能优化在视觉上有两个阶段: 加载阶段,能够快速的看到页面(首屏渲染时间); 交互阶段,能够快速响应操作(动画效果,接口返回速度等) 加载阶段 加载阶段,是指从发出请求到渲染出完 ...
- Web页面性能优化以及SEO
为什么要提高web性能? Web性能黄金准则:只有10%20%的最终用户响应时间花在了下载html文档上,其余的80%90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据著名 ...
- 小tip: base64:URL背景图片与web页面性能优化(转载)
今天在代码看到css北京图片使用了base64格式表示图片,SO,百度了一下.感觉完全可以解释了. 一.base64百科 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在H ...
- 小tip: base64:URL背景图片与web页面性能优化——张鑫旭
一.base64百科 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息. 某人: 唉,我彻底废柴了,为何上面明明是中文,洒家却看不懂嘞,为什 ...
- web页面性能优化系列(附录)其他必会的基础知识
001:即建立TCP链接 1,根据域名解析IP获取IP地址 2,TCP|IP三次握手 1,根据域名解析IP获取IP地址-发生在互联层 DNS解析IP A:浏览器会先解析我们输入的url地址,浏览器会先 ...
- WEB前端性能优化常见方法
web前端是应用服务器处理之前的部分,前端主要包括:HTML,CSS,javascript,image等各种资源,针对不同的资源有不同的优化方式. 1. 内容优化 (1)减少HTTP请求数:这条策略是 ...
- web前端页面性能优化(提升页面加载速度)
我们都知道,对于web应用来说性能很重要,然而性能的优化相关知识非常庞大而复杂,对于性能优化我们需要做些什么,或者瓶颈是什么通常是我们不太了解的.(当然技术大牛除外) 通过查阅相关资料,了解到了一些关 ...
最新文章
- github推送错误:已经有此代码,不允许覆盖的解决方法
- [C++11]不允许使用auto的四个场景
- 链表的头结点和尾节点的用处
- C语言 字符串转结构体,字符串指针转化为结构体指针!
- 十年开发教会我的那些事儿
- 视频标签- video 音频标签- audio
- java calendar 时分秒_Java中Calendar类的常用方法(对时间进行计算的类)
- 如何查看oracle死鎖,怎么查看oracle是否有死鎖
- 机器学习十大经典算法-KMeans
- IDEA解决Tomcat乱码问题
- Python数据库sqlite3详解
- 激光发生器的防浪涌防静电保护
- 网线制作IP组网(基于华为eNSP模拟器)
- 中兴承建沃商店共度周年庆
- ASP.NET实现将word文档转换成pdf的方法
- [李宏毅 机器学习笔记] Gradient Descent
- css 背景颜色 background属性
- 【2016——-编程语言排行以及优缺点分析】
- 阿里巴巴内推电话面试
- 利用环境监测设备做好这几点,菠菜出苗快、产量高