繁体   English   中英

您如何每隔15分钟从服务器刷新和html页面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM