AMD异步模块介绍

基本介绍

AMD(Asynchronous Module Definition,异步模块定义) 是一种用于 JavaScript 模块化编程 的规范,它允许 JavaScript 代码 以异步方式加载模块及其依赖。它最初是为了解决浏览器端 JavaScript 代码模块化的问题,最著名的实现是 RequireJS。

AMD出现背景

JavaScript 发展初期,所有代码都写在一个 .js 文件里,或者通过

有哪些特点

AMD 主要用于 浏览器端 JavaScript,它的核心特点是:
模块是独立的,可以在不同文件中定义和管理。
模块加载是异步的,不会阻塞页面渲染。
可以显式声明依赖,保证模块加载顺序

两个核心方法:

AMD 主要提供了两个关键方法:define、require
define():定义一个模块,并指定它的依赖。
require():加载一个或多个模块,并执行回调。

define()举例:

//['moduleA', 'moduleB'] 是依赖模块的列表。
//回调函数 function(A, B) 只有在依赖加载完成后才会执行。
define(['moduleA', 'moduleB'], function(A, B) {
    // A 和 B 作为依赖模块被加载进来
    function myFunction() {
        console.log(A.doSomething() + B.doSomething());
    }

    return {
    //返回值 { myFunction: myFunction } 作为模块的导出内容,其他模块可以使用它。
        myFunction: myFunction
    };
});

require()举例:

//只有当 myModule 加载完成后,回调 function(myModule) 才会执行。
require(['myModule'], function(myModule) {
// 按需加载 需要的模块,而不会影响其他部分的执行
    myModule.myFunction();
});

AMD作为异步编程,不同于CommonJS,AMD不堵塞代码执行

例子
console.log("1: 开始加载模块...");
define(['moduleA'], function(moduleA) {
    console.log("2: 模块A 加载完成");
});
console.log("3: 代码不会被阻塞,可以继续运行");

define() 不会阻塞代码执行,它会在 moduleA 加载完成后才执行回调函数。
console.log(“3: 代码不会被阻塞”) 会立即执行,不需要等待模块加载。
这对于 NetSuite 这样的云端系统 至关重要,保证了脚本不会因为等待一个模块而影响整个页面的运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值