requirejs(["a"],function(){
代码段b
})
requirejs(['c'],function(c){
代码段c
})
实在不明白require的异步在什么地方!!!
ajax异步是等服务器发送数据来了就调用回调,但是数据处理是在服务器端完成的,这个时候客户端是异步的,
可是如果在浏览器端,,只有一个主进程,,,a代码执行,如果是需要5s,那必定要等5s然后b才运行,这个通过回调和直接按照顺序有什么不一样么?
已经头大了,期待好心人解答疑惑....
最费时间的不是代码的执行,而是I/O
操作。require
的基本思路就是先将依赖加载,对于依赖的js
文件来说一般是用script
标签进行加载,当然会用async
属性,这样就可以异步的一次并行加载多个js
文件,正常的模式下js
文件只能一个一个的串行加载。其实require
的主要目的是在于模块化,而非是让性能更优化。
js最基本的就是回调解决 你require也是js啊
因为 require.js 加载模块也得 AJAX 请求服务器上的 JS 文件,也是远程 IO。
通过回调就是a的5秒在回调里执行,b直接执行不用等a的5秒执行完,同步的话,b就要等待5秒;
JS就是通过异步回调解决没有多线程的问题,而且浏览器上多线程也不现实;