使用defer属性推迟脚本的执行
知有
228
defer属性告诉浏览器等整个页面加载之后,解析完毕后才执行该script中的脚本。
在没有使用defer属性时,如果script在head中当浏览器执行到script时,它会先停止执行HTML页面,然后去下载JavaScript脚本文件,解析执行JavaScript脚本文件,这就会导致<body>中的代码还没解析,如果JavaScript代码中要直接获取元素节点,就会获取不到,之后的代码也会出错。
在遇到这种问题,传统的做法时将script放在body元素的最后,这样就可以保证JavaScript能够成功获取到指定的对象了。
现在,只需要将script中写入defer属性就可以告诉浏览器,必须等到整个页面载入并解析完成后,才会执行script中的脚本。