js基础概念

2017-05-24  本文已影响0人  李博洋li

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

css需要放在页面的head中,用link标签引入,而放在页面底部会发生页面dom元素加载而样式后加载的情况发生。
JavaScript在页面中放在body底部比较好,因为JavaScript每一个引入标签或页面内联JavaScript是不会并行加载的,如果放在头部,文件比较大或网速不好的情况下,页面会一直空白,因为这一个JavaScript文件没有加载完成,体验非常不好,而且JavaScript逻辑放在头部,在dom元素没有全部加载出来的时候,某些语句会导致控制台报错。

2、解释白屏和FOUC

关于白屏

如果把样式放在底部,对于IE浏览器,在某些场景下(新窗口打开,刷新等)页面会出现白屏,而不是内容逐步展现;如果使用 @import 标签,即使 CSS 放入 link,并且放在头部,也可能出现白屏。

关于FOUC

FOUC (Flash of Unstyled Content) 无样式内容闪烁

如果把样式放在底部,对于IE浏览器,在某些场景下(点击链接,输入URL,使用书签进入等),会出现 FOUC 现象(逐步加载无样式的内容,等CSS加载后页面突然展现样式).对于 Firefox 会一直表现出 FOUC .

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

async和defer是script标签的一个属性:

其区别是:

4、简述网页的渲染机制

  1. 解析 HTML 标签, 构建 DOM 树
  2. 解析 CSS 标签, 构建 CSSOM 树
  3. 把 DOM 和 CSSOM 组合成 渲染树 (render tree)
  4. 在渲染树的基础上进行布局, 计算每个节点的几何结构。
  5. 把每个节点绘制到屏幕上 (painting)
浏览器渲染.png
上一篇下一篇

猜你喜欢

热点阅读