Index: ssts-web/src/main/webapp/homepage/portalPage.jsp =================================================================== diff -u -r13346 -r13348 --- ssts-web/src/main/webapp/homepage/portalPage.jsp (.../portalPage.jsp) (revision 13346) +++ ssts-web/src/main/webapp/homepage/portalPage.jsp (.../portalPage.jsp) (revision 13348) @@ -215,30 +215,48 @@ timer = setTimeout(hideDiv,1); } } - +var getLoginUserDataPending = false; // 10秒钟检测一下当前用户是否切换 function detectCurrentUserPeriodically(){ + if(getLoginUserDataPending){ + return; + } //PortalDWRManager.getLoginUserData(function(user){ //onGetLoginUserData(user); //}); // ext 异步请求 + getLoginUserDataPending = true; Ext4.Ajax.request({ url : WWWROOT + '/systemmanage/user/userAction!getLoginUserData.do', success : function(response, options) { - var result = Ext4.decode(response.responseText); - if(result.success){ + // 此处返回的有可能不是json字符串,因为注销之后,会被acegi拦截,返回html + var result = Ext4.decode(response.responseText,true); + if(result != null && result.success){ onGetLoginUserData(result.loginUserData); + }else{ + var loginUserData = { + currentOrgUnitCode: '', + userName: '' + } + onGetLoginUserData(loginUserData); } + }, + callback: function(options,success,response){ + getLoginUserDataPending = false; } }); } function onGetLoginUserData(user){ + var msg = '用户或者部门已更改,当前页面将自动刷新'; + if(isUndefinedOrNullOrEmpty(user.userName)){ + msg = '用户已退出,当前页面将自动刷新'; + } // 如果部门都为空,不刷新 if(isUndefinedOrNullOrEmpty(user.currentOrgUnitCode) && isUndefinedOrNullOrEmpty(loginUserData.currentOrgUnitCode)){ return; } if(user.currentOrgUnitCode != loginUserData.currentOrgUnitCode || user.userName != loginUserData.userName){ - alert('用户或者部门已更改,当前页面将自动刷新'); + alert(msg); refreshCurrentPage(); } }