美文网首页
JS相关概念

JS相关概念

作者: _达斯基 | 来源:发表于2017-10-08 15:05 被阅读0次

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

  1. css放在head标签内,防止渲染时出现白屏
  2. js放在最后body尾部,因为js一般会涉及到一些DOM操作,所以要等全部的dom元素都加载完再加载js,js方法执行时,有可能会阻塞页面加载,如果把js放在前面可能会造成白屏的现象。

2. 解释白屏和FOUC

  • 白屏现象:
  1. 如果把样式放在底部,对于ie浏览器,在某些场景下(新窗口打开,刷新等)页面会出现白屏,而不是内容逐步呈现。
  2. 如果使用@import标签,即使css放入link,并且放在头部,也有可能白屏
  3. 脚本会阻塞后面内容的呈现和下载,所以js放置在head中也会导致白屏的可能.
    外部脚本加载过长(比如一直无法下载完成),就会出现出现网页暂时失去响应(这就是白屏).
  • FOUC(Flash of Unstyled Content) 无样式内容闪烁:
  1. 逐步加载无样式内容,等css加载好以后页面突然展现的样式。也就是说浏览器现在加载没有样式的内容,突然解析到css样式了,就会对页面重新渲染,这个时候就会出现FOUC现象。在ie中如果把样式放在底部,在某些场景下(点击链接、输入URL、使用书签进入等等),会出现FOUC现象。对于 Firefox 则会一直表现出 FOUC。

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

<script src="script.js"></script>

没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。

<script async src="script.js"></script>

有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。

<script defer src="script.js"></script>

有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。

在有 async 的情况下,JavaScript 脚本一旦下载好了就会执行,所以
很有可能不是按照原本的顺序来执行的。如果 JavaScript 脚本前后
有依赖性,使用 async 就很有可能出现错误。

- 区别:
- defer:脚本延迟到文档解析和显示后执行,有顺序
- async:不保证顺序

4.简述网页的渲染机制

  • 解析html构建DOM树
  • 解析CSS构建CSSOM树
  • 把DOM和CSSOM组合成渲染树(Render Tree)
  • 在渲染树的基础上进行布局,计算每个节点的几何结构(Layout Tree)
  • 把每个节点绘制到屏幕上(Painting)

相关文章

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? 解释白屏和FOUC async和defer的作用是什么?有什么区别 简述...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? css放在head中,用link标签引入: JS放在body中,且在所有...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? CSS要放头部head中的link标签内引入。js文件要放在 标签中,...

  • JS相关概念

    JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型? 判断一个变量是否是数字、字符串、布尔...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? css放到head标签内 js一般放到body尾部,因为js会涉及dom...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? 一般将css放置head里用包裹,也可以使用link标签引入。js一般使...

  • JS相关概念

    1,CSS和JS在网页中的放置顺序是怎样的? 网站加载的整个完整过程是:1、首先浏览器从服务器接收到html代码,...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? CSS写在HTML文件中的 标签内的 中,JS写在HTML中 标签...

  • JS相关概念

    1. CSS和JS在网页中的放置顺序是怎样的? css放在head标签内,防止渲染时出现白屏 js放在最后body...

  • JS相关概念

    1.CSS和JS在网页中的放置顺序是怎样的? css 一般放在head标签内,用 标签包裹,或者用link引入外部...

网友评论

      本文标题:JS相关概念

      本文链接:https://www.haomeiwen.com/subject/vlgeyxtx.html