美文网首页
ES6模块加载下

ES6模块加载下

作者: WWWWWWWWWWWWWWM | 来源:发表于2020-02-14 17:19 被阅读0次

1、传统的浏览器加载是遇到js文件时会从上到下依次加载,比如:

<script src="path/to/a.js"></script>
<script src="path/to/b.js"></script>

当a.js这个脚本文件比较大时,加载时间比较长,会造成阻塞,b.js文件不能执行,为了解决这个问题,引入了deferasync.只需要在引入的script标签上加上defer或者async属性就可以了,用法如下:

<script src="path/to/a.js" defer></script>
<script src="path/to/b.js" async></script>

defer与async的区别是:defer是“渲染完再执行”,async是“下载完就执行”。另外,如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本是不能保证加载顺序的
2、type="module"不会造成浏览器阻塞

<script type="module" src="./foo.js"></script>
<!-- 等同于 -->
<script type="module" src="./foo.js" defer></script>
  • jQuery 就支持模块加载
<script type="module">
  import $ from "./jquery/src/jquery.js";
  $('#message').text('Hi from jQuery!');
</script>

3、ES6 模块与 CommonJS 模块的差异

  • CommonJS 模块输出的是一个值的拷贝(类似于浅拷贝),ES6 模块输出的是值的引用。(类似于深拷贝)
  • CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。

相关文章

  • 代码模块化

    2 ES6模块 ES6模块基于文件,一个文件就是一个模块。ES6模块支持异步模块加载。关键字:import和exp...

  • ES6 模块与 CommonJS 模块的差异

    讨论 Node.js 加载 ES6 模块之前,必须了解 ES6 模块与 CommonJS 模块完全不同。impor...

  • ES6模块加载下

    1、传统的浏览器加载是遇到js文件时会从上到下依次加载,比如: 当a.js这个脚本文件比较大时,加载时间比较长,会...

  • 未来的模块机制

    概览 ES6实现了新的模块机制。在通过模块系统加载时,ES6会将文件当作独立的模块处理。每个模块都可以导入其它模块...

  • AMD、CMD、CommonJs、ES6的对比

    一、CommonJS 和 ES6 区别: 1.CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。...

  • ES6模块的循环加载

    ES6 处理“循环加载”与 CommonJS 有本质的不同。ES6 模块是动态引用,如果使用import从一个模块...

  • 第4章 ES6模块化

    目标 模块化系统演进 ES6模块化实现 模块化概述 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 Co...

  • 第4章 ES6模块化

    目标 模块化系统演进 ES6模块化实现 模块化概述 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 Co...

  • import 引入文件的优点

    上面代码的实质是从fs模块加载 3 个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可...

  • export等等那些故事(二)ES6 Module

    ES6 Module CommonJS模块就是对象,输入的时候必须查找对象属性。 上面就是整体加载person模块...

网友评论

      本文标题:ES6模块加载下

      本文链接:https://www.haomeiwen.com/subject/ooehfhtx.html