自动刷新网页

19

我有一个网页,允许用户执行各种操作,这些操作会修改数据库。此外,这个Web应用程序需要跟踪数据库中随时间变化的各种字段。每隔几秒钟刷新页面是实现这一目的的最佳方法吗?例如,如果页面上有一个需要滚动的长列表,由于刷新,页面不断重置,很难查看列表。我知道可以保留滚动位置的方法。但是,我能否使用更高效的方法?

10个回答

48

将它放在 head 标签下面

<meta http-equiv="refresh" content="5">

这将使页面每5秒刷新一次。

其他选项请参考链接文本


将什么放在<head>标签下? - Philip Rego
@PhilipRego 为什么,就是这行代码本身。 - joulev

8

使用定时器和 AJAX。这样我们可以刷新页面中的特定部分。


7
这个任务非常简单,在HTML头部区域使用以下代码即可。
<head> <meta http-equiv="refresh" content="30" /> </head>

它将在30秒后刷新您的页面。


3

简短回答是不可以。您可以使用ajax来更新必要的组件,这样可以减少加载时间并避免页面重置。


2
我认为你现在需要的是类似于反向AJAX,现在通常称为Comet。它是将数据从服务器推送到客户端,而不是浏览器从服务器/数据库轮询数据。 http://en.wikipedia.org/wiki/Comet_(programming) 上有一个很好的介绍。 已经有许多框架(例如DWR,ICEFaces)支持此模式。

1
如果您想自动刷新整个页面,请在页面头部使用meta html标签。但最好使用AJAX自动刷新页面的特定部分,以避免加载时间的弹性。

1

使用计时器的AJAX


1

不详细讲述,一般来说,您可能希望考虑以 Ajax 方式使用 Javascript 动态生成 HTML。这样做要更具挑战性,但从用户体验的角度来看,这是正确的方法。

请查看Yahoo 用户界面库以获取指导和帮助--它确实比手工操作容易得多。


我不会再使用任何带有“Yahoo”一词的东西了。 ;) - Michael G

0

我认为在头部使用刷新命令是一个不错的解决方案。

当您调用httpSuccess函数时,请尝试使用以下内容:

server.httpSuccess("text/html","Refresh: 30\r\n");

0

这听起来更适合在Flash或Silverlight应用程序中实现的功能。使用复杂的AJAX解决方案可能比你的方案更有效,但现实情况是,网页不适合用于实时内容的传输。


1
网页是直播内容的绝佳媒介。Comet、Ajax等技术可以实现此功能。 - mainsocial

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接