【问题标题】:Refresh a web page in ASP.NET automatically and capture the time until the next refresh自动刷新 ASP.NET 中的网页并捕获下一次刷新前的时间
【发布时间】:2009-04-08 14:53:36
【问题描述】:

我知道应该有一个简单的方法来做到这一点,但我想我的大脑今天不工作了。我需要在 x 秒内刷新一个页面。我可以使用以下方法在 .NET 中做到这一点:

Response.AddHeader("Refresh", "300");

这很好,只是我还需要显示距离下一次刷新的分钟数和秒数。

所以我在 javascript 中使用以下代码从客户端执行此操作:

<script type="text/javascript"">


    //enter refresh time in "minutes:seconds" Minutes should range from 0 to inifinity. Seconds should range from 0 to 59
    var limit="0:30"

    if (document.images){
        var parselimit=limit.split(":")
        parselimit=parselimit[0]*60+parselimit[1]*1
    }

    function beginrefresh(){
        if (!document.images)
            return

        if (parselimit==1)
            window.location.reload()
        else{ 
            parselimit-=1
            curmin=Math.floor(parselimit/60)
            cursec=parselimit%60
            if (curmin!=0)
                curtime=curmin+" minutes and "+cursec+" seconds left until page refresh!"
            else
                curtime=cursec+" seconds left until page refresh!"

            window.status=curtime
            setTimeout("beginrefresh()",1000)
        }
    }

    window.onload=beginrefresh;

</script>

除了一件事之外,这有效 - 每次刷新页面时,浏览器 (IE) 都会发出关于重新下载内容或其他内容的唠叨消息。这是不行的。这是一个用户将整天打开的页面,它需要在没有用户干预的情况下刷新。 我想我可以取消显示直到下次刷新的时间的消息,而只使用 ASP.NET 行,但如果有人有更好的主意,我将不胜感激。

【问题讨论】:

    标签: c# .net asp.net javascript


    【解决方案1】:

    不要使用window.location.reload(),而是尝试重定向到当前 URL:

    window.location = window.location;
    

    这样,浏览器将不会进行回发,而是向服务器发出新请求。您需要在各种浏览器中对此进行测试。我刚刚快速测试了FF 3 & IE8;看起来都不错。

    【讨论】:

    • 这成功了。应该注意到重新加载的东西。完全有道理,这会导致 IE 唠叨。大脑今天不工作 - 无法计算。危险威尔罗宾逊,危险!谢谢!
    【解决方案2】:

    您可以编写一些用于刷新目的的 JavaScript 以及用于刷新计时器的代码。要刷新页面,您必须这样写 -

    window.location.href = window.location.href

    这行JS会刷新页面,没有你说的NAG画面(nag画面其实是浏览器问的一个问题,是否要重新发布POST数据到服务器)。

    【讨论】:

      【解决方案3】:

      “唠叨”来自浏览器刷新已经发布到服务器一次的内容,并且是因为您的“重新加载”行。

      还有另一种刷新整个页面的选项,它只是刷新您使用 AJAX 功能实际更改的页面部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 1970-01-01
        • 2011-04-13
        • 2021-07-08
        • 2022-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多