加载 JavaScript ES6 模块并在 <script> 标记中导入所有导出是否相同?-6ren"> 加载 JavaScript ES6 模块并在 <script> 标记中导入所有导出是否相同?-无法理解我刚刚在 the Deno manual section on the deno bundle command 末尾阅读的两个示例之间的区别: Bundles can also be load-6ren">
gpt4 book ai didi

javascript - 通过 <script src =""> 加载 JavaScript ES6 模块并在 <script> 标记中导入所有导出是否相同?

转载 作者:行者123 更新时间:2023-12-03 14:36:53 25 4
gpt4 key购买 nike

无法理解我刚刚在 the Deno manual section on the deno bundle command 末尾阅读的两个示例之间的区别:

Bundles can also be loaded in the web browser. The bundle is aself-contained ES module, and so the attribute of type must be set to"module". For example:

<script type="module" src="website.bundle.js"></script>

Or you could import it into another ES module to consume:

<script type="module">
import * as website from "website.bundle.js";
</script>

我的印象是两种形式都达到了相同的效果(即“ fetched and executed immediately, before the browser continues to parse the page”),而后者用于脚本跟随或想要缩小导入的范围(例如,如 this answer 中所示) .
  • Section 16.6.1.2 Modules of the Exploring ES6 book似乎同意这个评估。
  • Reddit 线程 Difference Es6 import module vs script src=""似乎也证实了这一点:“与其将整个库转储到您的全局范围内,不如只包含您需要和实际使用的内容。”

  • 这可能被认为是其他问题的重复(请参阅列表底部),但这些答案对我没有多大帮助,辅助来源似乎也没有揭示我的假设是否正确。 (另一方面,我很可能忽略了一些明显的事情,并且必须提高我的阅读理解能力......)
  • Load javascript as an ES6 module OR via a script tag in the page (切线相关)
  • What is the difference between a script tag with src and a script tag that requires a module? (看起来很有希望,但不是关于 ES6 模块...)
  • Classic scripts v/s module scripts in Javascript
  • WHATWG: Adding JavaScript modules to the web platform
  • Import js from script tag in HTML file. Possible?
  • What is the difference between importing js library or reference it in html <script> tag (与 ES6 模块无关)
  • Should I reference files in a `script` tag when using ES6 modules in a browser
  • ES6 import vs <script src> in html
  • 最佳答案

    I was under the impression that both forms achieve the same effect


    是的,这两个都会有相同的效果

    (i.e., "fetched and executed immediately, before the browser continuesto parse the page"),


    不,任何 <scripttype="module"defer默认情况下,加载不会阻塞解析。然后所有延迟的脚本都按照它们出现的顺序执行,在解析之后和之前 DOMContentLoaded火灾。

    and the latter is used when a script follows orone wants to narrow down what is imported (e.g., as seen in thisanswer).


    您要使用哪一个还取决于捆绑包中完成的工作。如果包只包含库,并且不产生任何副作用(即,与页面交互、渲染等),那么您可能需要导入它以便可以使用这些功能。
    如果它确实有副作用(即渲染到 DOM 的 react 应用程序)并且是独立的,那么只需包含标签就足以让它开始

    关于javascript - 通过 &lt;script src =""> 加载 JavaScript ES6 模块并在 &lt;script&gt; 标记中导入所有导出是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66946551/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com