2018年7月

json5-logo

JSON5 是 JSON 的一个超集,通过引入部分 ECMAScript 5.1 的特性来扩展 JSON 的语法,以减少 JSON 格式的某些限制。同时,保持兼容现有的 JSON 格式。

JSON5 更像是 JavaScript 中的对象,但是它并不是 JSON 官方的扩展,所以需要 json5 作为文件扩展名。

- 阅读剩余部分 -

async 和 defer 都是 HTML 4.01 中定义的 <script> 标签的属性,都被用于改变处理外部脚本的行为。一般来说,当浏览器解析到 script 标签时,会暂停 HTML 解析器,开始下载、解析、执行外部脚本,执行完成之后在继续解析 HTML。但是某些情况下,我们并不希望 JavaScript 的执行阻塞 HTML 的渲染,于是 defer 和 async 就派上用场了。

defer 属性

defer 属性的中文含义是『推迟执行』,用于表明脚本在执行时不会影响页面的构造,即脚本会被延迟到整个页面都执行完毕再执行。

理论上,具有 defer 属性的若干个脚本会按照在页面中出现的顺序依次执行,且会优先于 DOMContentLoaded 事件执行。但是,根据浏览器的具体实现,defer 脚本并不一定按顺序执行,也不一定先于 DOMContentLoaded 事件。因此同一个页面最好只有一个 defer 脚本。

- 阅读剩余部分 -