Ext.util.Observable.observe(Ext.data.Connection);
Ext.data.Connection.on('requestcomplete', function(dataconn, response, options){
var sessionStatus = response.getResponseHeader("sessionstatus");
if(typeof(sessionStatus) != "undefined"){
Ext.Msg.alert('提示', '会话超时,请重新登录!', function(btn, text){
if (btn == 'ok'){
Ext.create('Ext.window.Window',{
title:'超时!请重新登录',
width:300,
height:120,
layout:'fit',
items:[{
xtype:'form',
frame:true,
url:'',
layout:'vbox',
items:[{
xtype : 'textfield',
name : 'userName',
allowBlank : false,
fieldLabel : '用户名:'
}, {
xtype : 'textfield',
name : 'userPass',
allowBlank : false,
fieldLabel : '密码:',
inputType : 'password'
}]
}]
}).show();
}
});
}
});
var IsHaveSession = {
run: function(){
Ext.Ajax.request({
url: context+'api/session/check',
disableCaching: true,//禁止缓存
timeout: 30000,//最大等待时间,超出则会触发超时
method:"GET",
success:function(response, opts){
var ret = Ext.JSON.decode(response.responseText); //JSON对象化
if (ret.success){
console.log('成功');
}
else{
console.log('失败!');
}
},
failure:function(response, opts){
//Ext.TaskManager.stop(IsHaveSession); //停止该定时任务
console.log('失败!');
//alert('还没有登陆或者操作已超时,请重新登陆');
}
})
},
interval: 10000 //1000=1 second
}
Ext.TaskManager.start(IsHaveSession);