我們有一個遺留應用程序(經典ASP和ASP.net的混合體),它有幾個Ajax內容豐富的頁面。期望的是,該網站的用戶在頁面上執行一組任務,可以跨越相當長的時間,例如15-30分鐘。使用javascript重置元標記以防止刷新頁面
其中一項要求是登錄到站點的用戶在15分鐘不活動後自動註銷。目前正在通過使用元標記將用戶重定向到註銷頁面15分鐘後,在頁面中處於非活動狀態。
<meta name='Refresh' http-equiv="Refresh" content="900;URL=/someurl/logout.asp">
我們遇到的問題是,瀏覽器犯規認爲已經在頁面上的任何活動,儘管有與服務器的許多AJAX交互。因此,在瀏覽器認爲處於非活動狀態的15分鐘後,即使用戶正在做某事,用戶也會自動註銷。
這個message board post的啓發,我們試圖通過使用javascript(JQuery的),像這樣
下面來解決煩惱將是一個事件處理程序等的節約爲簡單起見這裏的頁面點擊等在頁面加載修改刷新時間到5秒
$(document).ready(function() {
var selector = 'meta[name=Refresh]';
var content = $(selector).attr("content"); //"900;URL=/someurl/logout.asp"
$(selector).attr("content", "5;URL=/someurl/logout.asp");
});
意圖正在(重新)設置元標記內容的頁面刷新計時器將被重置。不幸的是,這似乎並沒有工作(在IE中)。
由於這是一個傳統的應用程序,所以一些決定即使用元標籤等都會被烘焙。問題是,有沒有辦法讓元標籤刷新和平共存於Ajax應用程序?我做錯了什麼,有沒有辦法解決這個問題?
元刷新與活動無關 - 如果將其設置爲15分鐘,則無論活動如何,都將刷新15分鐘。 – Matt 2010-02-05 20:29:24
看到可能的重複:http:// stackoverflow。com/questions/262305/how-can-i-update-meta-refresh-from-javascript-when-as-asyncronous-calls – Matt 2010-02-05 20:34:54
@Matt,by activity我的意思是這個頁面沒有被重新加載。當我們談論一個經典的asp應用時,我認爲它的含義是在每個帖子上重新加載頁面。 – 2010-02-05 21:54:04