说我有以下例子......
//------ lib.js ------
export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
//------ main.js ------
import { square } from 'lib';
console.log(square(11)); // 121
当我使用SystemJS或其他模块加载器时,它是否只下载方块的JS?还是下载整个文件,包括diag
? SystemJS是在客户端加载的,因此让我感到困惑的是如何工作。它不会创建更多的TCP请求并减慢一些速度吗?
我对切换到此模块模式将如何创建更小的占用空间(请求,带宽等)以及缩小和合并的JS文件感到困惑。
答案 0 :(得分:1)
模块系统(任何模块系统)无法下载部分文件。它将下载整个文件并完全解析,然后,根据加载器的功能和实现,它可能会减少内存占用,只使用所需的内容。
减少带宽&请求是客户端缓存的结果。当你连接和缩小时,几个页面中存在的模块都没有被缓存,因为它们被整合到完整的连接脚本中。