关于js 异步加载问题?

发布于 2022-08-29 23:10:03 字数 266 浏览 27 评论 0

代码一

var math = require('math');
math.add(2,3);

代码二

require(['math'],function(math){
    math.add(2,3);
});

请问大神:代码二的写法比代码一的写法优点有什么,如果是异步加载的话,那么不加载完math这个模块,又怎么去调用add()这个方法呢??新人求教,求轻喷!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难如初 2022-09-05 23:10:03

没有用过requirejs,不过我通常使用seajs,概念应该一致的。

seajs中同步异步加载方式如下

//同步
var module = require('math');
module.add(3);
//to do another code

//异步
require.async('math',function(math){
  math.add(3);
});
//to do another code

在上面中,同步是先加载要引入的的文件,之后顺序执行下面的代码。

异步则是先执行下面的代码,然后在加载完成模块后,在下一事件循环中,再次执行callback中的方法

在执行时,require的文件,是先行进行下载的,然后把对象按路径名缓存在seajs中的一个对象中的。async是在执行时,才去下载。

浮萍、无处依 2022-09-05 23:10:03

应该这么写:

代码一

var math = require('math');
math.add(2,3);

do_some_onther_things(); // ****

代码二

require(['math'],function(math){
    math.add(2,3);
});

do_some_onther_things(); // ****

代码三

require(['math'],function(math){
    math.add(2,3);
    do_some_onther_things(); // ****
});

明白了吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文