Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “怎么做?”;“元刷新”;,但前提是页面存在_Javascript - Fatal编程技术网

Javascript “怎么做?”;“元刷新”;,但前提是页面存在

Javascript “怎么做?”;“元刷新”;,但前提是页面存在,javascript,Javascript,我有一个我们团队使用的简单水疗中心,使用angular1。它的大部分数据都来自REST调用,但我也有一个“meta refresh”标记,用于偶尔重新加载整个页面,以确保用户偶尔获得一些小的功能更改。没有必要将此选项设置为可选,它只需重新加载页面即可 这种策略的一个小麻烦是,当用户有时与网络断开连接(例如在工作和家庭之间旅行)时,页面重新加载失败,并进入错误状态。强制重新加载页面很容易,但我希望它更干净一点,这样它只能在能够到达页面时重新加载页面 我当时注意到了这个建议。它使用javascrip

我有一个我们团队使用的简单水疗中心,使用angular1。它的大部分数据都来自REST调用,但我也有一个“meta refresh”标记,用于偶尔重新加载整个页面,以确保用户偶尔获得一些小的功能更改。没有必要将此选项设置为可选,它只需重新加载页面即可

这种策略的一个小麻烦是,当用户有时与网络断开连接(例如在工作和家庭之间旅行)时,页面重新加载失败,并进入错误状态。强制重新加载页面很容易,但我希望它更干净一点,这样它只能在能够到达页面时重新加载页面

我当时注意到了这个建议。它使用javascript进行重新加载,但对现有页面没有条件


是否存在一种合理的变化,即当无法到达页面时跳过重新加载,然后在能够到达页面时再次重新加载?

导航器对象有一个可以检查的属性
online

if(window.navigator.online){
  window.location.reload(); 
}

或者先发出一个ajax
head
请求,如果成功,则根据我的需要执行刷新,我最终在控制器中实现了一个“heartbeat”方法,该方法调用heartbeat服务,该服务向我的REST服务发出head请求,如果状态为200,则返回true

然后我从HTML中调用它,如下所示:

<script type="text/javascript">
    window.setInterval(function() {
        // Call controller method to call heartbeat service.
        if (angular.element(document.body).scope().heartbeat()) {
            window.location.reload();
        }
    }, 900000)
</script>

setInterval(函数(){
//调用控制器方法来调用心跳信号服务。
if(angular.element(document.body).scope().heartbeat()){
window.location.reload();
}
}, 900000)

在Javascript中不可能阻止元刷新触发最后一点是一个有趣的想法。HTML由REST调用的主机提供,因此这可能是一种有效的策略。“window.navigator”是特定于浏览器的吗?navigator不是特定于浏览器的。也是包含地理定位服务的对象