第二章 HTML 中的 JavaScript
2.1 <script> 元素
标签位置
背景:页面在浏览器解析到 <body> 的起始标签才开始渲染。
方式一:放在 <head> 里,意味着必须把所有
js代码都下载、解析和解释完成后,才能开始渲染页面。显然不是很合理。方式二:现代浏览器的做法,将其放在 <body> 里。
推迟执行脚本
添加 <script> 的 defer 属性,脚本会被延迟到整个页面都解析完毕后再运行。
建议:除了常见的浏览器,其他浏览器会忽略整个属性。考虑到这一点,还是把推迟执行的脚本放在页面底部比较妥当。
异步执行脚本
HTML5 为 <script> 元素定义了 async 属性,从改变脚本处理方式上看,async 属性与 defer 属性类似。
建议:好的 web 开发实践不推荐使用整个方法。
动态加载脚本
除了 <script> 标签,还可以通过向 DOM 中动态添加 <script> 元素,同样可以加载指定脚本。
let script = document.createElement('script');
script.src = 'gibberish.js';
script.async = false;
document.head.appendChild(script);
// 欲使预加载知道这些动态请求文件的存在,可以在文档头部显示声明它们:
<link rel="preload" href="gibberish.js">
XHTML 中的变化
可扩展超文本标记语言(XHTML, Extensible Hypertext Markup Language)是将 HTML 作为 XML 的应用重新包装的结果。但 XHTML 已退出历史舞台。
XML 与 HTML 的区别
1.语法不同
XML 语法比较严谨,而 HTML 语法比较松散。
2.用途不同
XML 主要用于数据格式化存储(JSON也是);HTML 主要用于网页的编辑
参考:XML是什么,通常都有哪些用途,和HTML有什么区别啊?