最近老大给我布置了一道作业,让我去想想有哪些办法可以优化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页面性能优化方法总结相关推荐

  1. 列举6个常见且实用的Web前端性能优化方法

    在如今这个信息爆炸的时代,人们的节奏总是快速的,对于一个网站的耐心毕竟是有限的可怜的,如果网站不进行优化必定会流失相当一部分的客户,带来不必要的损失.那么从Web前端的性能优化上来说有哪些常见.实用的 ...

  2. web页面性能优化及SEO优化

    web页面性能优化 前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网 ...

  3. web 页面性能优化

    web 页面性能优化 性能优化在视觉上有两个阶段: 加载阶段,能够快速的看到页面(首屏渲染时间); 交互阶段,能够快速响应操作(动画效果,接口返回速度等) 加载阶段 加载阶段,是指从发出请求到渲染出完 ...

  4. Web页面性能优化以及SEO

    为什么要提高web性能? Web性能黄金准则:只有10%20%的最终用户响应时间花在了下载html文档上,其余的80%90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据著名 ...

  5. 小tip: base64:URL背景图片与web页面性能优化(转载)

    今天在代码看到css北京图片使用了base64格式表示图片,SO,百度了一下.感觉完全可以解释了. 一.base64百科 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在H ...

  6. 小tip: base64:URL背景图片与web页面性能优化——张鑫旭

    一.base64百科 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息. 某人: 唉,我彻底废柴了,为何上面明明是中文,洒家却看不懂嘞,为什 ...

  7. web页面性能优化系列(附录)其他必会的基础知识

    001:即建立TCP链接 1,根据域名解析IP获取IP地址 2,TCP|IP三次握手 1,根据域名解析IP获取IP地址-发生在互联层 DNS解析IP A:浏览器会先解析我们输入的url地址,浏览器会先 ...

  8. WEB前端性能优化常见方法

    web前端是应用服务器处理之前的部分,前端主要包括:HTML,CSS,javascript,image等各种资源,针对不同的资源有不同的优化方式. 1. 内容优化 (1)减少HTTP请求数:这条策略是 ...

  9. web前端页面性能优化(提升页面加载速度)

    我们都知道,对于web应用来说性能很重要,然而性能的优化相关知识非常庞大而复杂,对于性能优化我们需要做些什么,或者瓶颈是什么通常是我们不太了解的.(当然技术大牛除外) 通过查阅相关资料,了解到了一些关 ...

最新文章

  1. github推送错误:已经有此代码,不允许覆盖的解决方法
  2. [C++11]不允许使用auto的四个场景
  3. 链表的头结点和尾节点的用处
  4. C语言 字符串转结构体,字符串指针转化为结构体指针!
  5. 十年开发教会我的那些事儿
  6. 视频标签- video 音频标签- audio
  7. java calendar 时分秒_Java中Calendar类的常用方法(对时间进行计算的类)
  8. 如何查看oracle死鎖,怎么查看oracle是否有死鎖
  9. 机器学习十大经典算法-KMeans
  10. IDEA解决Tomcat乱码问题
  11. Python数据库sqlite3详解
  12. 激光发生器的防浪涌防静电保护
  13. 网线制作IP组网(基于华为eNSP模拟器)
  14. 中兴承建沃商店共度周年庆
  15. ASP.NET实现将word文档转换成pdf的方法
  16. [李宏毅 机器学习笔记] Gradient Descent
  17. css 背景颜色 background属性
  18. 【2016——-编程语言排行以及优缺点分析】
  19. 阿里巴巴内推电话面试
  20. 利用环境监测设备做好这几点,菠菜出苗快、产量高

热门文章

  1. 现在的小孩为什么不爱学习
  2. 2006最大热点:国内第一本Ajax图书1月上市,讲述最酷最炫的WEB2.0核心技术 ——亚马逊计算机排行榜首图书
  3. 【Rust 日报】2021-07-04 如何在面试中确定 Rust 程序员水平?
  4. 5个常用的机器学习python库
  5. 2018年最聪明的科技创意
  6. break和continue和牛吃草问题
  7. Windows API 进程间通信,管道(Pipe)
  8. python实现双色球自动选号,附带历史中奖号对比
  9. 将影像地图发布成wmts服务,并在客户端加载影像地图
  10. 御数坊:企业级主数据管理平台业务架构及搭建价值探讨 | 会员专栏