我在搞乱 Three.js。我发现,它只能通过以下方式工作:
<script src="script.js" defer="defer"></script>
但我不知道,为什么这个defer="defer"如此重要......
你能帮助我吗?
最好的问候托比 P。
我在搞乱 Three.js。我发现,它只能通过以下方式工作:
<script src="script.js" defer="defer"></script>
但我不知道,为什么这个defer="defer"如此重要......
你能帮助我吗?
最好的问候托比 P。
它会导致浏览器延迟对脚本的解析(不一定会延迟加载)。
通常,当浏览器遇到脚本标记时,它会暂停对 HTML 的任何进一步处理,直到脚本被下载、获取、解析(然后在大多数浏览器上编译)并执行。这是允许 javascript 通过 document.write() 注入 html 所必需的。
然而,这通常意味着用户长时间盯着空白屏幕。
使用 defer 标签,在 HTML 完全加载之前不会解析/编译脚本。如果您有多个带有 defer 属性的脚本标签,则它们的解析顺序将保持不变。
这一切都在互联网上广泛记录。w3c 页面是一个很好的起点(但可能有点简洁)。