关于浏览器渲染

2017-12-11  本文已影响0人  饥人谷_邵征鹏

CSS和JS在网页中的放置顺序是怎样的?

解释白屏和FOUC。

  1. 如果把样式放在底部,对于IE浏览器,在某些情景下(新窗口打开,刷新等)页面会出现白屏,而不是内容逐渐展现。
  2. 如果使用@import标签,即使CSS放入link,并且放在头部,也可能出现白屏。
  3. 对于图片和CSS, 在加载时会并发加载(如一个域名下同时加载两个文件)。 但在加载 JavaScript 时,会禁用并发,并且阻止其他内容的下载. 所以把 JavaScript 放入页面顶部也会导致白屏现象。

async和defer的作用是什么?有什么区别?

翻到一篇博客,讲解的不错,更多内容可以参考这篇博客 async和defer的作用和区别

简述网页的渲染机制

  1. 解析html标签,构建dom树。
  2. 解析css标签,构建cssom树。
  3. 把dom和cssom组合成渲染树(render tree)。
  4. 在渲染树的基础上进行布局,计算每个节点的结构。
  5. 把每个节点绘制到屏幕上(painting)。
Webkit main flow.png
  1. 解析 HTML 标签到 Content Sink。
  2. 这时,先加载Content Sink 里面的内容,页面上会显示一个无样式的内容(HTML标签,网页内容优先)。
  3. 循环加载 CSS 样式, 构建渲染结构。
  4. 重新渲染页面, 绘制到屏幕上(painting)。
Mozilla's Gecko rendering engine main flow.png
上一篇 下一篇

猜你喜欢

热点阅读