1

我在搞乱 Three.js。我发现,它只能通过以下方式工作:

<script src="script.js" defer="defer"></script>

但我不知道,为什么这个defer="defer"如此重要......

你能帮助我吗?

最好的问候托比 P。

4

1 回答 1

2

它会导致浏览器延迟对脚本的解析(不一定会延迟加载)。

通常,当浏览器遇到脚本标记时,它会暂停对 HTML 的任何进一步处理,直到脚本被下载、获取、解析(然后在大多数浏览器上编译)并执行。这是允许 javascript 通过 document.write() 注入 html 所必需的。

然而,这通常意味着用户长时间盯着空白屏幕。

使用 defer 标签,在 HTML 完全加载之前不会解析/编译脚本。如果您有多个带有 defer 属性的脚本标签,则它们的解析顺序将保持不变。

这一切都在互联网上广泛记录。w3c 页面是一个很好的起点(但可能有点简洁)。

于 2013-09-03T08:27:00.280 回答