【问题标题】:How can I refresh a page/frame when a server not found error page is displayed?当显示未找到服务器错误页面时,如何刷新页面/框架?
【发布时间】:2012-07-07 18:00:48
【问题描述】:

我已经搜索过,但没有找到关于这个主题的任何讨论:

我有一个私人网页(用 php 实现),它滚动浏览几个不同的 php 页面,显示信息,然后每分钟刷新到下一个页面,用于显示最新工作、天气等的消防站。我目前使用 header( 'refresh: 60; url=screen2.php' );在每个 php 文件中只是指向下一个文件..

问题是有时页面由于某种原因无法加载,此时会显示“未找到服务器”页面。当这种情况发生时,刷新指令当然会丢失,错误页面会一直保留在那里,直到有人注意到问题并手动刷新页面。不理想..

我应该提到该页面显示在消防站周围的多个监视器上,并且运行它的电脑被锁定。因此,经常手动刷新它的麻烦!

如果可能的话,在没有人工干预的情况下自动从这种情况中恢复是很重要的。如果显示错误页面,是否有任何方法,使用框架、php、javascript 或其他方式再次刷新?

任何想法都将不胜感激。

谢谢! 亚当

【问题讨论】:

  • 我认为服务器未找到错误是基于浏览器的消息,并且完全取决于客户端的连接。例如,如果用户尝试连接到服务器但调制解调器出现故障,浏览器将根本无法连接并显示该错误。我不认为你可以直接从服务器端做任何事情,但也许你可以做一个 Ajax 方法:构建一个 Ajax 页面,它每分钟调用一次 PHP API 并简单地让 PHP API 返回最新数据。如果服务器连接断开,Ajax 页面将保留在浏览器中。

标签: php javascript html frames


【解决方案1】:

您可以在 setTimeout 函数或元刷新标记中使用 javascript window.location。

没有理由需要在 PHP 端这样做,除非您关心用户是否可以更改刷新信息。

【讨论】:

  • 我喜欢这种方法,因为您可以使用 javascript 检查响应以确保找到下一页,如果问题是“找不到服务器”错误,则在会话中保存数据并没有真正帮助
【解决方案2】:

您说它“由于某种原因无法加载”-您知道这是为什么吗?如果问题出在您的服务器端,那么您可以设置您的服务器,使其 404 响应(或 500 内部服务器错误响应,或任何错误)包含重定向到起始 PHP 页面的标头。

如果问题与 DNS 或连接相关 - 即。甚至没有联系服务器,因此浏览器正在显示“未找到”错误页面,那么您可以做的是更改此页面。这并不容易,但在 Firefox 中,您可以例如按照http://forums.mozillazine.org/viewtopic.php?f=7&t=492177&start=0 上的说明自定义显示的错误页面。

除此之外,解决页面无法加载的问题可能会更好,这可能更简单:)

【讨论】:

  • 传奇!这是导致问题的蹩脚的adsl连接/电话线。我制作了一个自定义版本的 Firefox 并解决了我的问题!谢谢! :)
【解决方案3】:

您还可以将信息保存在会话中。 http://php.net/manual/en/features.sessions.php

另一种独立于服务器的方式是 javascript 的 Web Storage API。大多数现代浏览器已经支持它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2021-08-15
    • 2016-12-20
    • 2017-01-15
    • 1970-01-01
    相关资源
    最近更新 更多