学习JavaScript中,日常笔记总结
1.JavaScript通过<script>元素插入到HTML页面中的,<script>会严格按照他们在网页中出现的次序被解释。在过去,所有<script>元素都被放在<head>标签内,对于需要很多JavaScript的页面,会导致页面渲染明显延迟,此期间浏览器窗口完全空白。为了解决这个问题,我们应该将JavaScript元素引用放在<body>元素中的页面内容后面,这会使用户感觉页面加载更快了,因为浏览器显示空白页的时间短了。
2.脚本文件执行的时候会阻塞文档的的解析,在一定程度上影响用户的体验。使用defer属性可以把脚本推迟到文档渲染完毕后再执行,原则上是按照他们被列出的次序执行(defer比较适合跟DOM有关的脚本)。async属性表示脚本不需要等待其他脚本,同时不阻塞文档渲染,即异步加载,但是设置多个async属性后不能保证按照他们在页面中出现的次序执行(async下载的脚本执行时间不确定,修改DOM可能会出错,所以async适合第三方脚本)。
3.通过使用<noscript>元素,可以指定浏览器在不支持脚本或者不允许网站使用脚本时显示的内容(在该标签的位置显示,一般不影响其他HTML元素),若浏览器支持且允许使用脚本,则<noscript>元素中的任何内容都不会被渲染。