ExtJs4.2中的FormPanel派生于Panel对象,它真的就只是一个面板,一个容器,其实说白了就是放置表单的容器.
它在初始化的时候在父对象的initComponent方法执行完毕后,就开始定义传播事件.你可以定义pollForChanges为true,它会调用startPolling方法.startPolling方法的作用是定时调用checkChange方法,用于检查字符的变化.由于这样做比较耗费系统资源,一般不推荐这样做.
最近刚好在做ExtJs的源码抽离工作.可以删除以下代码:
startPolling: function(interval) {
this.stopPolling();
var task = new Ext.util.TaskRunner(interval);
task.start({
interval: 0,
run: this.checkChange,
scope: this
});
this.pollTask = task;
},
stopPolling: function() {
var task = this.pollTask;
if (task) {
task.stopAll();
delete this.pollTask;
}
},
checkChange: function() {
var fields = this.form.getFields().items,
f,
fLen = fields.length;
for (f = 0; f < fLen; f++) {
fields[f].checkChange();
}
}
这一段也可以不要的.
if (me.pollForChanges) {
me.startPolling(me.pollInterval || 500);
}