chapter 2 HTML中的JavaScript
1.<script>元素
包括几个属性:async/charset/crossorigin/defer/integrity/src/type
避免在script块中插入</script>,如果非要插入,在前面加上转义符,如<\/script>
script应该被放在页面内容之后或者头部分,并且按照顺序渲染页面。
defer只对外部脚本文件有效,且脚本被延迟到整个页面解析完毕后才运行。
async同defer,区别在于async不会按照脚本排放顺序来执行渲染。
因此,异步脚本不应该在加载期间修改DOM
2.动态加载脚本
使用DOM API动态添加script元素,从而加载指定的脚本
<head><link rel="preload" href="gibberish.js"></head>
//在文档头部显示声明,让预加载器知道动态请求文件的存在,提升性能。
<script>
let script = document.createElement('script');
script.src = 'gibberish.js';
script.async = false;//添加这行使得原先为异步加载的脚本同步加载了
document.head.appendChild(script);
</script>
3.行内代码与外部文件
使用外部文件具有可维护性、缓存(两个页面都用到同一个js文件的话,只需要下载一次,提高了页面加载速度)、适应性
4.<noscript>元素
可以制定浏览器不支持脚本时显示的内容。如果浏览器支持脚本,则该元素里的任何内容都不会被渲染。