2010-06-11 65 views
3

我有一个需要每10秒刷新一次的default.aspx页面。用C#中的Timer刷新我的.aspx站点的最佳方法是什么?

我到目前为止的解决方案是一个JavaScript函数,但它只适用于Firefox而不适用于IE。

我正在寻找一种方法来处理default.aspx.cs页面中的刷新mecanism,而不是某种类型的Timer。

任何好的简单的sugestions /提示或解决方案,可以带领我在正确的方向吗?

+0

ASP.NET在服务器上执行。 – Mike 2010-06-11 14:45:49

+1

“firefux”。太棒了。 – 2010-06-11 17:41:15

+0

@AbeMiessler在我称之为firesux的日子里,当我意识到自己是小白的时候,我停下了脚步。:/ – radbyx 2012-05-08 11:56:11

回答

4

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

然后将为您生成相应的跨浏览器脚本。

可以查看快速教程这里How do I use the aspnet ajax timer control

还有其他更复杂的技术,这可能是更有效的,但是这会给你几分钟的工作了良好的效果。

+0

我已经有一个ScriptManager和一个UpdatePanel,并正在寻找一个计时器,所以这对我来说是一个完美的答案。它甚至有视频教程。 – radbyx 2010-06-14 06:25:46

3

我认为Meta refresh是你在找什么

在你的情况是

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

编辑

至于其他用户指向correclty,完全刷新每次10秒钟,这两点是不是一个很好的方法。我同意他们,我也建议采用不同的方法,可能基于ajax或彗星。

+4

虽然如果你想让整个页面更新,这是正确的答案,但我不鼓励在实践中使用它这对你的用户来说非常迷惑。最好使用ajax并只更新需要更新的页面部分。 – 2010-06-11 14:12:46

+0

@Iain Galloway:100%同意你的观点。每10秒完全刷新一次对用户而言将是一场噩梦:-) – 2010-06-11 14:58:06

2

我已经使用jquery成功刷新页面,它也适用于IE。

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

+1:OP可能不需要重新加载整个页面。这将更轻量级,虽然需要JavaScript。 – RedFilter 2010-06-11 14:13:35

+0

我认为这可能是IE浏览器设置为禁用元刷新的最佳方式。但它应该被设置为允许它,除非你的网站在禁区内。 – 2010-06-11 14:13:42

5

只需使用一个<meta>标记网页标题,表示自动刷新:

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

时,才应使用JavaScript刷新方法,如果你需要传递一些信息(可能已经改变)回到服务器上的页面。

相关问题