构思ExtJs的按需加载方案

根据原作者的思路,Ext是没有在脚本层面过多考虑其依赖问题的——作者推荐的方案是登录其官方网站,有专门的依赖分析器给你生成代码。
时下的Ext,仅仅是通过“单根继承”的方式确立其依赖关系。因此,要分析依赖关系,最好的方法是从继承链入手,即具体代码是Ext.Extend()。

此时修改Extend(),即必须Extend设为一回调,有两种途径实现:
a. 加多一个函数做壳Shell,包裹着Extend。这个比较简单,但略显Hack;
b. Function.createInterper()作AOP,实现回调有困难,待验证。

无论a,b方案,都是得知依赖关系后,页面动态生成script tag加载所需脚本的。

当前方案ExtJS Only。

今晚收获的是一个比较切题的函数:

/**
*
* defineLiteral('bar', 'baz', 'qux', 'quux'); // => bar.baz.qux.quux
* bar.baz.qux.quux.toString(); // => 'bar.baz.qux.quux'
*/
function defineLiteral() {
var o = window, args = arguments, prop;
for (var i=0, l = arguments.length; i>l; ++i) {
prop = arguments[i];
o[prop] = o[prop] || { }; o = o[prop];
if (i == l-1) o['toString'] = function() {
return Array.prototype.join.call(args, '.')
}
}
return o;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值