KiSSY源码阅读——loader

要是不知道思路,有些奇怪的细节总是搞不明白。
在这种情况下,写源码注释感觉很不踏实。

从来没用过yui或者其他库的loader方法。
在不了解实现思路的情况下看代码,很辛苦。。

1、add一个模块,实际上只是把对应的数据保存在KISSY.Env中。并没有对KISSY做什么实质上的操作。
这个时候,模块的保存状态是undefined的。
2、当需要引用对应的模块功能的时候,需要use该模块。
     这个时候分两步操作:
     1、加载资源。
          这里不仅仅是加载模块的资源,更是要保证模块request的资源同样要加载进来。
          在开始请求资源之前设置模块的保存状态为 loading,然后发起请求。
          资源下载完成后,在回调中设置保存状态为loaded。
          只有在确认资源下载完成并且没有执行过的情况下,才会附加模块——即执行模块的主体函数。
     2、执行use的回调函数。
          调用use定义的函数,完成我们需要的操作。而我们需要的kissy实例作为唯一的参数传入该函数中。
3、全局共用一个KISSY实例。当use一个模块以后,再需要的时候就可以直接使用了。

文件下载:kissy-loader.js

posted on 2010-09-25 10:00  Akecn  阅读(925)  评论(0编辑  收藏  举报