JS相关概念

2017-11-16  本文已影响0人  Sunset125

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

<html>
<head>
  <meta charset="utf-8">
  <title>JS test</title>
  <link rel="stylesheet" href="mystyle.css">
</head>
<body>
  ……
  <script src="index.js"></script>
</body>
</html>

      一般而言,css是放在<head>标签内,用<link>进行引用;而javascript的位置在<body>的闭合标签之前,但是也可以放置在<head>标签内,但是由于在进行页面渲染的时候,js会阻塞html以及css的解析,从而造成白屏现象,所以放置于最后就可以避免这种情况的发生。

二.解释白屏和FOUC

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

JS 在 HTML 中引入有三种<script> <script async> <script defer>。

  1. 直接引入<script>

<script src="script.js"></script>
浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。这样会阻塞浏览器渲染,必须等到 JS 下载并执行才继续解析 HTML。

2.async 方式引入

<script async src="script.js"></script>
加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步),同时阻塞 HTML 解析。

3.defer 方式引入

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

如图所示:


js 引入的三种方式

四.简述网页的渲染机制

上一篇下一篇

猜你喜欢

热点阅读