有關web項目自動登出時長

本次問題描述:客戶反映,在登錄後,若是不進行操做一段時間。再操做會出現自動登出的狀況。根據該狀況進行排查,發現系統中設置的session保持時長爲9小時。可是爲何會出現相似狀況呢? 解答:本次狀況和系統自己設置的session時長無關,若是設置時長是1分鐘,那麼1分鐘未操做系統,再操做的時候會自動登出。 session保持時長:這個概念爲兩次向後套請求的時間間隔長度,也就是若是不操做系統9小時,那麼再操做時會自動登出,可是一直操做系統的話,不會登出。 session共享:本系統有兩臺服務器,在配置負載均衡的時候設置了session共享。 本次的問題,明確了本系統的session保持時間,可是仍是出現這樣的問題,因此就懷疑負載均衡的session保持時間。問了一下網絡的同事,確實爲負載均衡的session保持時間較短,爲300s,因此會出現這種問題。ajax

解決,這種問題的解決,通常使用keepalive。 咱們的解決方案是定時向後臺發出一個異步請求,好比如今是300s,咱們就設定沒250s去進行一次ajax請求json

$(function() {
	/**
	 * 數據傳輸
	 */
	function sendMsg(){
	  $.ajax({
	        type: "post",     
	        contentType: "application/json; charset=utf-8",   
	        dataType: "json",     
	        url: ctx + "RequestUrl/reUrl",    
	        data: {},   
	        success: function (data) { 
	                   },
	        error: function (err) { 
	            alert("err:" + err);
	        }
	    });
	}
	setInterval(sendMsg,240000);  //定時傳送數據
});

該function必定要放到$(function(){})內部。由於setInterval定時讀取的方法必定要在內部,而且在setInterval方法前定義服務器

相關文章
相關標籤/搜索