EXTJS4如何使用单个app程序来进行大型软件开发
2012-03-15 09:15
801 查看
本文转自:http://www.uspcat.com/forum.php?mod=viewthread&tid=3601
作者:
yunfengcheng
附件是官方MVC根据本文的改版
大型软件模块众多,extjs4提供的MVC的设计模式可以叫程序员的设计更清晰.
但是问题来了,因为就一个app,那么他加载的时候会把所有controller加载进来,那么controller
会把用到的mode和view全加载进来,这样一来程序在初始化的时候就会加载整个系统的js文件
系统一旦规模变大必然会导致运行速度降低,系统使用臃肿.加载时间长等一系列问题.
例如:
Ext.application({
launch: function() {//当前页面已经完全载入调用
.........
},
controllers: [
'Users',
'ROLE'
'DD'
'JX'
'JMS'
等等........
]
});
那么如何做到用单个app来完成分布式加载呢?
先来看看MVC的原理:
在ExtJs4.0核心包中关于app就2个文件
controller是application的一部分,初始化application的时候连带这会把相应的controller初始化.
然后controller再连带初始化view和mode,store
那我们的思路就从这里开始,我们的想法是如果我们开始的时候就加载一个controller(也就是一套功能)
而这套功能的目的就是用来初始化别的controller把其动态加载到这个唯一的app中不就是ok了吗?
问题:如何才能把外面的controller加载到已经初始化好了的app中呢?
查看controller源码我发现他有一个属性可以通过controller找到他所在的app
在初始化事件的方法中源码调用了this.application 那么说我们可以通过controller找到他对用的application
我们再看看application的源码发现application中的controller是一个集合并且getController: function(name)
这个方法写的很微妙
不仅仅完成了通过名字返回controller的功能还完成了信controller穿件的功能,(这个有点想我们pcat教程中用的工厂和缓存)
这样一来我就只需要完成下面代码可以打工搞成了
var c = this.application.getController("Users2");
c.init();
好了接下来就可以使用这个controller加载进来的一切view和mode资源了
切记:init()方法一点要手动调用
作者:
yunfengcheng
附件是官方MVC根据本文的改版
大型软件模块众多,extjs4提供的MVC的设计模式可以叫程序员的设计更清晰.
但是问题来了,因为就一个app,那么他加载的时候会把所有controller加载进来,那么controller
会把用到的mode和view全加载进来,这样一来程序在初始化的时候就会加载整个系统的js文件
系统一旦规模变大必然会导致运行速度降低,系统使用臃肿.加载时间长等一系列问题.
例如:
Ext.application({
launch: function() {//当前页面已经完全载入调用
.........
},
controllers: [
'Users',
'ROLE'
'DD'
'JX'
'JMS'
等等........
]
});
那么如何做到用单个app来完成分布式加载呢?
先来看看MVC的原理:
在ExtJs4.0核心包中关于app就2个文件
controller是application的一部分,初始化application的时候连带这会把相应的controller初始化.
然后controller再连带初始化view和mode,store
那我们的思路就从这里开始,我们的想法是如果我们开始的时候就加载一个controller(也就是一套功能)
而这套功能的目的就是用来初始化别的controller把其动态加载到这个唯一的app中不就是ok了吗?
问题:如何才能把外面的controller加载到已经初始化好了的app中呢?
查看controller源码我发现他有一个属性可以通过controller找到他所在的app
在初始化事件的方法中源码调用了this.application 那么说我们可以通过controller找到他对用的application
我们再看看application的源码发现application中的controller是一个集合并且getController: function(name)
这个方法写的很微妙
不仅仅完成了通过名字返回controller的功能还完成了信controller穿件的功能,(这个有点想我们pcat教程中用的工厂和缓存)
这样一来我就只需要完成下面代码可以打工搞成了
var c = this.application.getController("Users2");
c.init();
好了接下来就可以使用这个controller加载进来的一切view和mode资源了
切记:init()方法一点要手动调用
相关文章推荐
- EXTJS4如何使用单个app程序来进行大型软件开发
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- 如何使用Zealware提供的SMGPAPI进行固网小灵通短信网关程序开发?
- Android 软件开发之如何使用Eclipse Debug调试程序详解
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- 如何使用Zealware提供的CNGPAPI进行网通短信网关程序开发?
- 如何在windows上使用eclipse远程连接hadoop进行程序开发
- Android 软件开发之如何使用Eclipse Debug调试程序详解
- Android 软件开发之如何使用Eclipse Debug调试程序详解
- Android 软件开发之如何使用Eclipse Debug调试程序详解
- 【hadoop】Hadoop学习笔记(九):如何在windows上使用eclipse远程连接hadoop进行程序开发
- 如何正确使用javascript 来进行我们的程序开发
- 转: Android 软件开发之如何使用Eclipse Debug调试程序详解(七)
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- 【转载】Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- Android 软件开发之如何使用Eclipse Debug调试程序详解
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- Android 软件开发之如何使用Eclipse Debug调试程序详解及Eclipse常用快捷键(转)