gpt4 book ai didi

javascript - requireJS模块加载

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:34:28 24 4
gpt4 key购买 nike

我需要一些关于只在需要时使用 requireJS 加载模块的概念的帮助

这是我的 main.js

require(['jquery', 'path/somemodule'],
function($, somemodule) {
$(document).ready(function() {
somemodule.init()
})

})

在 somemodule.js 中

 define(['jquery', 'path/someothermodule'], function ($, someothermodule) {
"use strict";
var somemodule;

somemodule = {
init: function () {
someothermodule.init()
}
}
return somemodule;
)}

现在 somemodule.js 和 someothermodule.js 被加载到所有页面上。如何仅在需要时加载它?

最佳答案

当您使用标准 define() 语法从 module1 请求 module2 时,module1 将不会加载/运行,直到 module2 完全加载。看起来像这样:

// inside module1
define(['module2'], function(mod2) {
// we don't get here until AFTER module2 has already been loaded
});

延迟加载 module2 的替代方案如下所示:

// inside module1
define([], function() {
require(['module2'], function(mod2) {
// we don't get here until AFTER module2 has already been loaded
});
// but we DO get here without having loaded module2
});

现在您必须稍微小心地进行编程,以确保您不会遇到任何异步问题。

在您的情况下,您可以修改 main.js 文件

require(['jquery'],
function($) {
// jquery is loaded, but somemodule has not

if(thisPageNeedsSomeModule) {
require(['path/somemodule'],
function(somemodule) {
// now somemodule has loaded
$(document).ready(function() {
somemodule.init()
})
});
}
})

关于javascript - requireJS模块加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19436607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com