美文网首页
JS相关概念

JS相关概念

作者: 月光下的微笑 | 来源:发表于2017-10-20 12:16 被阅读0次

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/style.css">
</head>
<body>
    html tag
    <script src="./js/jquery.js"></script>
</body>

</html>

为了防止白屏,最好是吧css刚在head里面,js放在body的最后面。如上。

为什么会白屏,还有FOUC是什么

  • 白屏
    1. 从上面的渲染机制可以看出来,当CSS文件写在最下端的时候,浏览器先解析html形成dom树,再解析css形成cssom树,两者结合形成渲染树,之后再将内容绘制到屏幕上,所以如果将css放在底部,那么加载时间就会变长,那么在形成渲染树绘制之前就会是白屏。
    2. 当JavaScript被置于顶部时,会禁用并发,并且阻止其后的文件的加载及组件的下载,所以也可能出现白屏。
  • FOUC
    对于firefox浏览器,当CSS样式被置于底部,html会先呈现出来,待到html加载完毕,再一次性加载CSS样式使得样式突然呈现,就有了闪屏的现象。

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

  • async:
    • HTML5 为<script>元素定义了 async 属性。
    • 这个属性与 defer 属性类似,都用于改变处理脚本的行为。同样与 defer 类似, async 只适用于外部脚本文件,并告诉浏览器立即下载文件。但与 defer不同的是,标记为 async 的脚本并不保证按照指定它们的先后顺序执行。
  • defer:
    • HTML 4.01 为<script>标签定义了 defer 属性。
    • 这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。因此,在<script>元素中设置defer 属性,相当于告诉浏览器立即下载,但延迟执行。

我觉得如果不用这两个属性的话,<script>标签会中断浏览器的渲染来解析脚本,如果加上这两属性他们会在浏览器渲染的同时把他们下载下来先不解析,等到页面dom,cssdom渲染完毕在执行,而defer会把脚本先后顺序按照你写的顺序解析,而async则没有这个功能。

浏览器渲染机制

  1. 解析 HTML 标签, 构建 DOM 树
  2. 解析 CSS 标签, 构建 CSSOM 树
  3. 把 DOM 和 CSSOM 组合成 渲染树 (render tree)
  4. 在渲染树的基础上进行布局, 计算每个节点的几何结构
  5. 把每个节点绘制到屏幕上 (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/mmwmuxtx.html