什么是性能优化?

就是让用户感觉你的网站加载速度很快。。。哈哈哈。


分析

让我们来分析一下从用户按下回车键到网站呈现出来经历了哪些和前端相关的过程。

  1. 缓存 首先看本地是否有缓存,如果有符合使用条件的缓存则不需要向服务器发送请求了。
  2. DNS查询
  3. 建立TCP链接
  4. 发送HTTP请求
    ****** 后台进行相关处理,前端等待 ******
  5. 接收缓存
  6. 接受完成,浏览器开始解析HTML
    • 浏览器按行解析HTML,首先解析DOCTYPE,看是HTML还是XML。。。
    • 不同的浏览器解析完一行,做出的响应不一样,有的会直接渲染有的则等到完全解析完(包括css)再进行渲染。
    • CSS在渲染的时候Chrome会阻塞HTML渲染,IE不会。JS则一定会阻塞HTML的解析。注意有最大同时下载数量。

对策

对DNS ---- 减少DNS查询次数(尽量少的域名)

对TCP链接

  1. 连接复用 ---- 在请求头中设置 xhr.setRequestHeader("Connection", "keep-alive");

大量的连接每次连接关闭都要三次握手四次分手的很显然会造成性能低下,因此http有一种叫做keepalive connections的机制,它可以在传输数据后仍然保持连接,当客户端需要再次获取数据时,直接使用刚刚空闲下来的连接而不需要再次握手。

  1. 因为发送请求时会带上cookie,所以可以减小其体积来优化速度,再就是用没有cook ie的域名(比如CDN)
  2. 服务器端设置cache-control,在设置的时间内可以直接不发请求。
  3. 同时发送多个请求,请求的数量限制是对于一个域名来说,因此可以适当的增加请求的域名来减少下载的排队时间。

对接收响应

  1. 使用Etag,服务器将接收到的Etag值与服务器存储的值做对比,如果相同则返回304,可以尽量少的减少传输的体积。
  2. 在请求头中设置Accept-Encoding: gzip, deflate,这样服务器传送给客户端的就是gzip编码的response(文件后缀是.gz)。

其他优化方法

  1. 将CSS放到 <head>,将js文件放到 <body>的最后面。CSS放前面是因为可以让页面一加载出来就可以有样式,而且有的浏览器即使放在最后他也要等到css加载完才显示页面。而js放在最后是因为他会阻塞HTMl的渲染。在HTML渲染之前准备好js,我们的js也获取不到DOM节点,而且没有js我们的页面一般也不会有碍观瞻。
  2. 懒加载
  3. 预加载
  4. 避免空src的图片

接下来说一下CDN

CDN即Content Delivery Network(内容分发网络)。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

web性能优化(理论)相关推荐

  1. web性能优化---图片优化

    先来看一道易错题 ​``` let a = {a: 1} let b = a // 相当于把b的地址 指向a的内容 a.x = a = {n: 2} //由于a.x = a把a的地址指向了a.x 然而 ...

  2. Apache的压力测试以及web性能优化的常用知识总结

    这篇文章主要介绍了Apache的压力测试以及web性能优化的常用知识总结,笔记由<构建高性能web站点>这本高人气书籍整理而来,需要的朋友可以参考下  什么是带宽? 误解:"数据 ...

  3. [译]Web 性能优化: 图片优化让网站大小减少 62%

    这是 Web 性能优化的第二篇,上一篇在下面看点击查看: Web 性能优化: 使用 Webpack 分离数据的正确方法 图像是web上提供的最基本的内容类型之一.他们说一张图片胜过千言万语.但是如果你 ...

  4. 移动web性能优化笔记

    移动web性能优化 最近看了一些文章,对移动web性能优化方法,做一个简单笔记 笔记内容主要出自 移动H5前端性能优化指南和移动前端系列--移动页面性能优化 转载于:https://www.cnblo ...

  5. 前端小白浅谈seo优化以及web性能优化方案

    写在前面 这是好久之前的工作了,之前还没用vue spa 做项目的时候,都是用的原生js写项目,纯html,css,js写项目,真的是每个页面引用css,js各种文件写到头痛, 那个时候做一个大型网站 ...

  6. web性能优化以及SEO

    web性能优化 1.尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容.这部分时间包括下载页面中的图像.样式表.脚本.Flash等.通过减少页面中的元素可以减少HTTP请求的次数 ...

  7. 前端利器,6 款开源 Web 性能优化辅助工具推荐

    转自:原文链接 Web 性能优化是一个老生常谈的话题,也是前端页面开发十分重要的部分.当页面加载速度越慢,用户流失的概率就越大,性能和交互直接影响用户体验. 下面推荐几款 Web 性能优化辅助工具推荐 ...

  8. 前端开发:Web性能优化有哪些方法?

    Web性能优化,主要分为前端和后台两个部分性能优化,后台性能优化决定了Web能不能用,前端优化决定了其好不好用,也就是牵涉到前端用户体验和Web易用性等情况,所以前端性能与用户体验是有着极大的关联的. ...

  9. Web性能优化方法总结

    web性能优化 一.页面优化 1.减少HTTP请求数量 1.从设计实现层面简化页面:尽量将页面设置成百度首页那样,保持页面简洁.减少资源的使用. 2.合理设置HTTP缓存:合理设置缓存可以大大地减少H ...

  10. Web性能优化:基本思路和常见工具

    Web性能优化 听了荣华的演讲之后,我对性能优化有了更深层次的认识. 性能优化的重要性 性能优化是为了赢得用户,为了降低成本. 性能优化思路 Web常见优化点 Java常见排查工具

最新文章

  1. 大触教你如何调节python内置函数
  2. 人机接口设备攻击(HID Attack)
  3. Java中带有JWebSocket的WebServerSocket
  4. CF Gym 101630 B Box
  5. 如何系统学习领域驱动设计?
  6. CentOS安装运行NodeJS框架Express
  7. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...
  8. 编程心得体会_生信编程语言的经验之谈
  9. java模拟手机浏览web_PC上测试移动端网站和模拟手机浏览器
  10. Jar包冲突解决方法 Unknown lifecycle phase mvn Eclipse中执行maven命令
  11. ADO.NET中COMMAND对象的ExecuteNonQuery、ExcuteReader和ExecuteScalar方法
  12. 设计模式笔记(15)---命令模式(行为型)
  13. mysql判断时间是否在某个区间_如何正确理解 RT 并监控 MySQL 的响应时间
  14. Java数据库编程技术 第三章习题
  15. 搭建ftp服务器的超详细步骤。
  16. 学习笔记4--惯性导航及总结
  17. 基于SmartQQ协议的QQ自动回复机器人-1
  18. office办公软件题库1
  19. 另辟蹊径,独树一帜的写作方法
  20. shell习题第15题:看数字找规律

热门文章

  1. psu是什么电脑配件_PSU的完整形式是什么?
  2. stl swap函数_vector :: swap()函数以及C ++ STL中的示例
  3. c++ stl队列初始化_声明,初始化和访问向量| C ++ STL
  4. 【竞赛题解】Codeforces Round #710 (Div. 3)
  5. hsql mybatis 表不存在_单元测试MyBatis与HSQL而不是Oracle
  6. centos 无法连接网络
  7. [剑指Offer]替换空格
  8. 随机生成1024个数,存入一段内存,用指针实现获取1024个数的最大数地址,最小数地址
  9. tiny4412(用户手册及芯片手册)
  10. C语言实现多线程排序