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) { });

这样就动态载入完毕了,而且如果这样封装的话,重复执行时也不会重复载入的

posted @ 2013-01-28 15:43  Zux  阅读(230)  评论(0编辑  收藏  举报