[英]how do you refresh and html page from the server every 15 minutes
我有一个显示一堆图表的html页面。 该站点与ventor SSO应用程序集成在一起。 您第一次带入该站点,它将转到sso身份验证,并且一旦通过身份验证,您就可以进入该站点。
此供应商的SSO中间应用程序有30分钟的标题超时会话。 如果用户打开该站点并登录并保持空闲状态30分钟,则该站点将停止运行。 用户需要再次登录到SSO才能使用。
我的问题是这个。 如果用户登录并且在30分钟内未使用该网站,并且如果他/她尝试通过调出URL或刷新浏览器来再次使用该网站,则该页面无任何作用。 浏览器没有使用浏览器缓存将页面转发到SSO登录。
为了解决这个问题,我编写了此脚本,以便每15分钟从服务器刷新一次页面。 不知道出了什么问题,但是我确实看到它有时可以工作,而且有时浏览器仍然试图从浏览器缓存中加载页面。 我在下面做什么? 还有其他解决此问题的想法吗?
<script>
$(document).ready(function(){
jQuery('div').live('pagehide', function(event, ui){
var page = jQuery(event.target);
if(page.attr('data-cache') == 'never'){
page.remove();
};
});
setTimeout(function(){ window.location.href = window.location.href; }, 900000);
});
</script>
<script>
您可以在标头中使用元标记。
<head>
<meta http-equiv="refresh" content="900">
</head>
900秒等于15分钟。
$(document).ready(function(){
setTimeout('window.location.reload();', 90000);
// OR
// setTimeout('location.reload(true);', 5000);
jQuery('div').live('pagehide', function(event, ui){
var page = jQuery(event.target);
if(page.attr('data-cache') == 'never'){
page.remove();
}
});
});
另外,我不建议使用live
相反,您应该只将ajax请求发送到不执行任何操作的服务器上的页面。
function continueSession() {
setTimeout(function(){
$.get("somepage.php").always(continueSession);
},15*60*1000);
}
continueSession();
只要页面处于打开状态,这就足以使会话继续进行,并且如果用户实际上是在15分钟标记处使用页面,则不会中断用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.