使用 HTMLScriptElement 加载脚本是否有任何优势?只是将它包含在DOM中而不是加载它?


也许举例来说,在DOM中保持干净并隐藏脚本会更容易(减少它们很明显?


没有找到任何相关资料,这就是我要问的原因。

答案 0 :(得分:1)
通常,您只需在HTML文档中直接包含脚本标记即可。除非您使用async
属性,否则后续脚本将不会加载到之前的脚本,因此您可以安全地依赖任何依赖项。
如果您希望保持HTML清洁,可以以编程方式使用HTMLScriptElement
接口加载脚本。但是,您必须手动创建onload
和onerror
处理程序以异步等待加载脚本。除非你围绕它构建抽象,否则这将变得混乱和复杂。然后你做了很多次做过的事情,参见RequireJS,SystemJS等。
因此,想要保持HTML清晰的脚本标记是一个合理的抱负,但你可能最好不要寻找现成的脚本加载器来做到这一点,而不是自己动手。
答案 1 :(得分:0)
这里没有真正的选择。 HTMLScriptElement
是所有HTML <script>
节点公开的“接口”。
通过调用document.createElement('script')
或通过HTML解析器传递<script>...</script>
标记字符串来创建脚本节点(这可以通过多种方式发生:从解析完整的HTML文档到设置{{ 1)现有元素。)当在HTML文档中创建innerHTML
元素时,<script>
位于其原型链中。因此,HTMLScriptElement
元素可以访问HTMLScriptElement
上的所有属性和方法。
<script>
不是构造函数。这可以通过尝试调用HTMLScriptElement
来查看,这会引发new HTMLScriptElement()
Illegal constructor
。
所有这一切都是说你的问题没有意义,因为人们无法使用HTMLScriptElement加载“脚本而不是通过将其包含在DOM中来加载它”。