标签:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> 有两个函数,一个require,另一个define。 define("模块名称",["依赖项"],funtion(依赖项){ function t(){} return t; }); define(["a","b","c"],function(a,b,c){ }); 首先是查找依赖项, 如果在全局变量req.dependence找不到依赖项, 就根据依赖项的名字,下载对应js文件。下载可以是异步下载。 等js文件下载好,立即执行js文件内容,把返回的结果注册到req.dependence下面。同时把返回结果,注入到回调函数。 结构类似如下: "name":{ "name":"", "dependence":[], "fn":function(){} } 这里要注意两个问题,1是循环依赖,2是同名模块覆盖。 循环依赖的解决:记住自己模块的名字,如果有直接依赖项或者间接依赖项是自己,那么报错。 同名模块的解决:覆盖或者报错。 有多个依赖项下载,要有计数器。等他们全下载并执行完,才执行回调函数。 </body> </html>
标签:
原文地址:http://www.cnblogs.com/samwu/p/4300396.html