关于EXT多个远程调用失效问题
|
kenshinhu
2008-06-27
请问各位大虾们,有没有试过在多个远程调用会时不时出错undefine的问题没有?
请详见代码
var hospitalSn = new Ext.data.Store({proxy: new Ext.data.HttpProxy({url:'../dirhospital.do?type=showListviews=getSn'}),
reader: new Ext.data.XmlReader({
record:'hospital',
id:'hospitalSn',
totalRecords: '@total'},
[
{name:'hospitalSn',mapping:'hospitalSn'},
{name:'hospitalName',mapping:'hospitalName'}
]),
autoLoad:true
});
function hospitalSnException(obj,parm){
hospitalSn('edu can\'t load');
};
//educationLevel 数据源
var educationLevel = new Ext.data.Store({proxy: new Ext.data.HttpProxy({url:'../direducationlevel.do?type=showList'}),
reader: new Ext.data.XmlReader({ record:'educationLevel', id:'code', totalRecords:'@total' },[ {name:'code',mapping:'code'}, {name:'remarks',mapping:'remarks'} ]),
autoLoad:true
});
function eduException(obj,parm){
alert('edu can\'t load');
};
//post 数据源
var Staffpost = new Ext.data.Store({proxy: new Ext.data.HttpProxy({url:'../direpost.do?type=showList'}),
reader: new Ext.data.XmlReader({
record:'post',
id:'code',
totalRecords: '@total'
},[ {name:'code',mapping:'code'}, {name:'remarks',mapping:'remarks'} ]), autoLoad:true });
function StaffpostException(obj,parm){
alert('Staffpost can\'t load');
};
//degree 数据源
var degreeStroe = new Ext.data.Store({proxy: new Ext.data.HttpProxy({url:'../direother.do?type=showList&views=getDegree'}),
reader: new Ext.data.XmlReader({
record:'Degree',
id:'code',
totalRecords: '@total'
},[ {name:'code',mapping:'code'},
{name:'remarks',mapping:'remarks'}
]),
autoLoad:true });
function degreeStroeException(obj,parm){
alert('degreeStroe can\'t load');
};
这里有4个Store 在GridPanel中,我是这样调用的
{
header: '职位',
dataIndex: 'post',
width:75,
sortable: true,
renderer:function(value){
var pos = Staffpost.getById(value);
return pos.get('remarks');
}
},
{
header: '医院',
dataIndex: 'hospital',
width:95,
sortable: true,
renderer:function(value2){
var rec = hospitalSn.getById(value2);
return rec.get('hospitalName');
}
},
{
header: '学历',
dataIndex: 'education_level',
width:50,
sortable: true,
renderer:function(value1){
var edu = educationLevel.getById(value1);
return edu.get('remarks');
}
},
{
header: '年龄',
width:30,
dataIndex: 'age',
sortable: true
},
{
header: '职称',
dataIndex: 'degree',
sortable: true,
renderer:function(value5){
var deg = degreeStroe.getById(value5);
return deg.get('remarks');
}
}
也就是跟椐不用的STORE在GIRD的值来显示不同的值。 但其中发现了一些细小的问题~ 就是一些时候会出现deg.undefine(不止这个还有edu、rec等等。。)的报错,导致GRID显示不到。 请问这是什么原因出错呢?~我地本地局域网测试的。应该是服务反应问题还是别的? 还有,我是用STRUTS输出XML文件的,应该不能是输出的问题。。 |
|
|
cheng022074
2008-06-29
这个呢,问题比较简单,第一,你的程序一点问题也没有,第二,EXTJS组件也没有问题,主要问题是每一种服务器在初始化时有一定的反映时间,因此,在自己的个人PC刚启动后的执行的第一个EXTJS程序,且此时EXTJS向服务请求数据比较多时,就会出现这种情况,因为在前端的底层XMLHTTP的请求是有失效期的,这与EXTJS本身无关,只与XMLHttp技术有关,据说W3C正在搞有状态AJAX应用,就可以彻底解决这个问题
|

