饥人谷技术博客

JS相关概念

2017-03-15  本文已影响0人  LINPENGISTHEONE

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

html文件是自上而下的执行方式,但引入的css和javascript的顺序有所不同,css引入执行加载时,程序仍然往下执行,而执行到<script>脚本是则中断线程,待该script脚本执行结束之后程序才继续往下执行。

css样式放在head中。js放置在body标签内的最后,script标签内。外链用<script src=""></script>,内部的用<script></script>。

1.一般将script脚本放在<body>之后,那样dom的生成就不会因为长时间执行script脚本而延迟阻塞,加快了页面的加载速度。
2.但是又不能将所有的script放在body之后,因为有一些页面的效果的实现,是需要预先动态的加载一些js脚本。所以这些脚本应该放在<body>之前。
3.不能将需要访问dom元素的js放在body之前,因为此时还没有开始生成dom,所以在body之前的访问dom元素的js会出错,或者无效。

解释白屏和FOUC

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

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

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

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

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

加载和渲染后续文档元素的过程将和 该script的加载与执行并行进行(异步)。脚本延迟到文档解析和显示后执行,有顺序。

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

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

简述网页的渲染机制

先了解几个基本概念
4857510-426f6b0b1226a8a2.png
上一篇 下一篇

猜你喜欢

热点阅读