加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.cn/)- 智能营销、数据计算、数据可视化、负载均衡、研发安全!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

驱动工业4.0缺失的一环?

发布时间:2021-02-01 11:51:03 所属栏目:传媒 来源:互联网
导读:八、浏览器特定功能 与常规脚本相比,拥有 type=module 标识的脚本有一些特定于浏览器的差异。 如果你是第一次阅读或者你不打算在浏览器中使用 JavaScript,那么你可以跳过本节内容。 九、模块脚本是延迟的 模块脚本 总是 被延迟的,与 defer 特性(在 脚本:

八、浏览器特定功能

与常规脚本相比,拥有 type="module" 标识的脚本有一些特定于浏览器的差异。

如果你是第一次阅读或者你不打算在浏览器中使用 JavaScript,那么你可以跳过本节内容。

九、模块脚本是延迟的

模块脚本 总是 被延迟的,与 defer 特性(在 脚本:async,defer 一章中描述的)对外部脚本和内联脚本(inline script)的影响相同。

也就是说:

  • 下载外部模块脚本 <script type="module" src="..."> 不会阻塞 HTML 的处理,它们会与其他资源并行加载。
  • 模块脚本会等到 HTML 文档完全准备就绪(即使它们很小并且比 HTML 加载速度更快),然后才会运行。
  • 保持脚本的相对顺序:在文档中排在前面的脚本先执行。

它的一个副作用是,模块脚本总是会“看到”已完全加载的 HTML 页面,包括在它们下方的 HTML 元素。

例如:
 

以,让我们重申一下 —— 模块只被执行一次。生成导出,然后它被分享给所有对其的导入,所以如果某个地方修改了 admin 对象,其他的模块也能看到这个修改。

这种行为让我们可以在首次导入时 设置 模块。我们只需要设置其属性一次,然后在进一步的导入中就都可以直接使用了。

例如,下面的 admin.js 模块可能提供了特定的功能,但是希望凭证(credential)从外部进入 admin 对象:
 

如果我们真的需要创建一个 window-level 的全局变量,我们可以将其明确地赋值给 window,并以 window.user 来访问它。但是这需要你有足够充分的理由,否则就不要这样做。

五、模块代码仅在第一次导入时被解析

如果同一个模块被导入到多个其他位置,那么它的代码仅会在第一次导入时执行,然后将导出(export)的内容提供给所有的导入(importer)。

这有很重要的影响。让我们通过示例来看一下:

首先,如果执行一个模块中的代码会带来副作用(side-effect),例如显示一条消息,那么多次导入它只会触发一次显示 —— 即第一次:

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读