为什么说require.js是异步的?

requirejs(["a"],function(){
代码段b
})
requirejs(['c'],function(c){
代码段c
})

实在不明白require的异步在什么地方!!!
ajax异步是等服务器发送数据来了就调用回调,但是数据处理是在服务器端完成的,这个时候客户端是异步的,
可是如果在浏览器端,,只有一个主进程,,,a代码执行,如果是需要5s,那必定要等5s然后b才运行,这个通过回调和直接按照顺序有什么不一样么?
已经头大了,期待好心人解答疑惑....

阅读 6.1k
4 个回答

通过回调就是a的5秒在回调里执行,b直接执行不用等a的5秒执行完,同步的话,b就要等待5秒;
JS就是通过异步回调解决没有多线程的问题,而且浏览器上多线程也不现实;

因为 require.js 加载模块也得 AJAX 请求服务器上的 JS 文件,也是远程 IO。

js最基本的就是回调解决 你require也是js啊

最费时间的不是代码的执行,而是I/O操作。require的基本思路就是先将依赖加载,对于依赖的js文件来说一般是用script标签进行加载,当然会用async属性,这样就可以异步的一次并行加载多个js文件,正常的模式下js文件只能一个一个的串行加载。其实require的主要目的是在于模块化,而非是让性能更优化。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题