defer:defer 属性用于指定脚本在文档解析和渲染过程中的执行时机。 具有 defer 属性的脚本会在文档解析完成后,但 DOM 构建完成之前执行。 这意味着脚本可以在 DOM 元素被创建之前运行,这对于某些需要操作 DOM 的脚本来说非常有用。 同时,由于 defer 脚本在 DOM 构建之前执行,它们不会影响页面的渲染速度。
async:async 属性用于指定脚本异步加载。 具有 async 属性的脚本会在页面加载时异步下载,并在下载完成后按照它们在 HTML 文件中出现的顺序执行。 这允许你将关键的 JavaScript 代码(如交互逻辑)放在页面的顶部,而将非关键的代码(如第三方库)异步加载,从而提高页面的加载速度。