Javascript高级程序设计 第四版 笔记

115 阅读1分钟

第二章 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有什么区别啊?

2.2 行内代码与外部文件