我们有一个遗留应用程序(经典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