使用元刷新更新页面的替代方法

时间:2010-11-21 23:08:16

标签: javascript ajax page-refresh

过去,当我报道事件时,我使用了一个带有5分钟计时器的元刷新来刷新页面,以便人们获得最新的更新。

意识到这可能不是完美的方式(在IE中并不总是有效,中断一个人的流程,为屏幕阅读器的人重启事物等)我想知道是否还有其他办法处理这种情况。

如果服务器上的html文件较新,并且打印出“更新信息可用,点击此处刷新”的消息,是否可以每隔几分钟检查一次ajax检查?

如果这很疯狂,那么从5分钟开始算起来的javascript只会建议更新。

如果有人能指出我的教程或代码片段,我会很感激。我只是在电视上扮演程序员。 : - )

4 个答案:

答案 0 :(得分:1)

实际上,您对定时Ajax测试的想法是一个很好的主意。我不确定这正是StackOverflow使用的内容,但它会定期检查是否已发布其他答案,并在有间隔的情况下向用户显示是否有更新。

我认为这是出于以下原因的理想选择:

  • 这是不显眼的 - 如果他们不在乎,读者可以轻易忽略更新
  • 除非用户选择
  • ,否则不会浪费带宽 - 不会重新加载
  • 它提供了丰富的信息 - 用户知道有更新,可以选择对其采取行动。

我的看法 - 让ajax脚本将最新的post id发送到检查新脚本的脚本。此脚本可以查询您的数据库以查看是否有任何新帖子以及有多少帖子。它可以返回这个数字。如果有新帖子,请显示一些(非模态)消息,包括更新次数,并让用户决定如何处理。

答案 1 :(得分:0)

setInterval(function() {
  if (confirm("Its Been 5 Minutes. Would you like to refresh")) {
    window.location.reload(true);
    //Or instead of refreshing the page you could make an ajax call and determing if a newer page exists.  IF one does then reload.

  }
}, 300000);

答案 2 :(得分:0)

您可以在javascript中使用setInterval功能。

这是一个样本

setInterval("refresh function", milliseconds, lang);

您将使用它将名称传递给实际刷新第一个参数的页面的函数和第二个参数的刷新之间的毫秒数(300000表示5分钟)。第三个参数lang是可选的

答案 3 :(得分:0)

如果用户要与分数进行交互并点击某些内容,那么只需刷新页面即可。我认为做一些像页面更新的通知一样理想。

我会使用jQuery并对服务器上的文件执行ajax调用,或者返回更新数据的内容。如果它比抛出Growl消息更新

Gritter - jQuery Growl System Demo of what a Growl is using Gritter

可能会出现一个Growl消息,包括已更改的内容,新分数以及该消息中的一个选项,以刷新并查看新结果。

jQuery Ajax information