YUI3的动态加载脚本功能实现
在ExtFrame里有一套实现了的可以延迟在需要时才加载脚本的机制,例如,当用户在树上点击用户管理时,才载入user.js创建相关的panel和表格等
在YUI3里有loader机制动态加载脚本
一开始我还以为可以使用loader动态加载指定路径脚本
在研究了N天之后恍然大悟,原来是这样写的:
YUI({ modules: { form: { async: false, fullpath: '../scripts/core/form.js' }, treeview: { async: false, fullpath: '../scripts/gallery/treeview.js' }, user: {async: false, fullpath: '../scripts/logic/user.js' }, ...... dataquery: { async: false, fullpath: '../scripts/core/dataquery.js' } } }).use('node', 'panel', 'event-focus', 'json', 'model', 'graphics', 'model-list'.......
也就是先直接把user.js定义成一个自定义module,然后在代码里不要直接use,这样是不会在运行时就载入的
等到需要用时,再写成
Y.use('user', function(Y) { });
这样就动态载入完毕了,而且如果这样封装的话,重复执行时也不会重复载入的