1

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

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

如果服务器上的 html 文件较新,是否可以每隔几分钟检查一次 ajax 之类的东西,并让它打印一条消息:“更新信息可用,单击此处刷新”?

如果这很疯狂,那么从 5 分钟开始倒计时并建议刷新的 JavaScript 怎么样。

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

4

4 回答 4

1

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

我认为这是理想的,原因如下:

  • 它不引人注目 - 如果读者不在乎,他们可以很容易地忽略更新
  • 它不会浪费带宽 - 除非用户选择,否则不会重新加载
  • 它信息丰富 - 用户知道有更新并可以选择对其采取行动。

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

于 2010-11-21T23:16:04.530 回答
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);
于 2010-11-21T23:13:24.320 回答
0

您可以在 javascript中使用setInterval函数。

这是一个样本

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

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

于 2010-11-21T23:16:28.883 回答
0

如果用户要与分数进行交互并单击某些东西,那么仅刷新它们上的页面会有点粗鲁。我认为做一些类似通知页面已更新的事情是理想的。

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

Gritter -Growl 使用 Gritter 的 jQuery Growl 系统 演示

Growl 消息可能会出现任何更改、新分数以及该消息中用于刷新和查看新结果的选项。

jQuery Ajax 信息

于 2010-11-21T23:26:59.957 回答