ES Module 学习

发展历史

  • 无模块时期
    仅浏览器使用 js,通过 <script> 标签的先后顺序在设置 global scope 的模块引用。amd/seajs 等现已不用,忽略
  • Commonjs 时期
    Nodejs 为了模块化发明了一种模块加载方式,同步加载,require 后立即执行
  • ES Module 时期
    ES5 开始 js 引入了模块标准,同时还能解决前端对于 treeshaking/编译时就能分析依赖结构等需求,异步加载,因此可以支持 top-level await

主要疑问

1. .mjs/.cjs/type:module 都是什么

ECMAScript 没有规定文件名规范,是**“Host Environment宿主环境”**决定了规范。

MongoDB 游标分页方案

最常见的分页方案是基于“页码”和“页数”,后端通过计算跳过一定数量的数据记录,直接向前端返回想要的数据。

这种方案简单有效,但在数据量巨大时,由于需要调过大量数据,即使有索引可能也很慢。
如果业务上不能允许我们分库分表,可能就需要一种新的分页方案。

这里介绍一种基于游标的分页方式,理论性能不会随着数据量增长而下降。