用C#定时器刷新我的.aspx网站的最佳方法是什么?

4

我有一个default.aspx页面,需要每10秒刷新一次。

目前我的解决方案是使用JavaScript函数,但它只能在Firefox中工作,而不能在IE中。

我正在寻找一种方法,在default.aspx.cs页面中处理刷新机制,使用某种计时器。

是否有好的简单建议/提示或解决方案可以指导我正确的方向?


ASP.NET 在服务器上执行。 - Mike
@AbeMiessler,早些时候我称之为firesux,但当我意识到自己是新手时,我就停止了... :/ - radbyx
4个回答

6
只需在页面头部使用<meta>标签来指示自动刷新:
<meta http-equiv="refresh" content="10" />

只有当您需要将某些信息(可能已更改)传回服务器上的页面时,才应使用JavaScript刷新方法。


5

在工具箱中,ms ajax包含一个计时器。添加ScriptManager,将要刷新的内容放入UpdatePanel中,然后添加ajax计时器。

适当的跨浏览器脚本将自动生成。

您可以在此处查看快速教程如何使用aspnet ajax计时器控件

还有其他更复杂的技术可能更有效,但这将为您带来良好的结果,只需几分钟的工作。


我已经有了ScriptManager和UpdatePanel,正在寻找一个Timer,所以这对我来说是一个完美的答案。它甚至还有视频教程。 - radbyx

4

我认为你需要的是元刷新

在你的情况下,应该是这样的

<meta http-equiv="refresh" content="10" />

编辑

正如其他用户正确指出的那样,每10秒完全刷新并不是一个很好的方法。我同意他们的观点,并建议采用不同的方法,可能基于ajax或comet。


4
如果您想要刷新整个页面,这是正确的答案,但在实际应用中我不建议使用它,因为对用户来说会非常令人迷惑。最好使用Ajax,只更新需要更新的页面部分。 - Iain Galloway
@Iain Galloway:我完全同意你的观点。每10秒进行一次完整刷新对用户来说将是一场噩梦 :-) - Claudio Redi

2

我已经成功使用了jQuery来刷新页面,并且在IE中也可以正常工作。

$(document).ready(function() {
         $("#content_1").load("yourSite.aspx");
       var refreshId = setInterval(function() {
          $("#content_1").load('yourSite.aspx');
       }, 5000);
    });

+1:OP 可能不需要重新加载整个页面。这样会更轻量级,但需要使用 JavaScript。 - D'Arcy Rittich
我认为这可能是最好的方法,因为IE有一个禁用元刷新的设置。但是除非您的网站在受限制的区域内,否则应该将其设置为允许。 - Mikael Svenson

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