前端性能优化

css,js的加载与执行

javascript是单线程的

一个网站在浏览器是如何进行渲染的呢?

html页面加载渲染的过程

html渲染过程的一些特点

  • 顺序执行,并发加载

    • 词法分析
    • 并发加载
    • 并发上限
  • 是否阻塞
  • 依赖关系
  • 引入方式

css阻塞

  • css head中阻塞页面的渲染
  • css阻塞js的执行
  • css不阻塞外部脚本的加载

js阻塞

  • 直接引入的js阻塞页面的渲染
  • js不阻塞资源的加载
  • js顺序执行,阻塞后续js逻辑的执行

依赖关系

  • 页面渲染依赖于css的加载
  • js的执行顺序的依赖关系
  • js逻辑对于DOM节点的依赖关系

js引入方式

  • 直接引入
  • defer
  • async
  • 异步动态引入js

加载和执行的一些优点

  • css样式表置顶
  • 用link代替import
  • js脚本置地
  • 合理使用js的异步加载能力

可以使用Chrome浏览器的performance工具分析页面的加载过程

最新文章

  1. MVC3.0删除数据的时候给提示信息
  2. 一些java方法,一些感想
  3. .net微信公众号开发——模板消息
  4. MVC初学 - The type or namespace name 'DbContext' could not be found
  5. ZOJ1463
  6. jquery $('#btn').click与$("#btn").live("click",function()有什么区别?
  7. BZOJ 3038 上帝造题的七分钟2 (并查集+树状数组)
  8. js中定义用字符串拼接起来的变量名的变量
  9. HDU 4121
  10. Java并发包中CopyOnWrite容器相关类简介
  11. SQLServer 查看SQL语句的执行时间
  12. MYSQL:alter语句中change和modify的区别
  13. Android开发之漫漫长途 XIV——RecyclerView
  14. Spring(一)JdbcTemplate的环境搭建
  15. 基于vue 、vue-router 、firebase的todolist小项目
  16. JavaScript常用数组操作方法,包含ES6方法
  17. 【Vegas原创】VirtualBox扩容、分割的整体方案
  18. 仓储层接口IBaseRepository解析
  19. Java多态的向上转型和向下转型
  20. JDBC、ODBC、OLE DB、ADO、ADOMD区别与联系

热门文章

  1. -bash: warning: setlocale: LC_CTYPE: cannot change locale (zh_CN.UTF-8mb4): No such file or directory
  2. BP神经网络拟合给定函数
  3. Spring Boot 2从入门到放弃(持续更新)
  4. STM32之RGB灯仿真
  5. 洛谷 P4298: bzoj 1143: [CTSC2008]祭祀
  6. Python学习零基础<入门必学>
  7. VS自定义模板-以自定义类模板为样例
  8. P3983 赛斯石(赛后强化版)
  9. CF926B Add Points
  10. .net core 3.0 swagger