代码之家  ›  专栏  ›  技术社区  ›  user69889

自动刷新ASP.NET中的网页并捕获下一次刷新之前的时间

  •  1
  • user69889  · 技术社区  · 17 年前

    我知道应该有一个简单的方法,但我想我的大脑今天不工作。我需要在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)都会给出关于重新下载内容或其他内容的NAG消息。这不行。这是一个用户可以全天打开的页面,需要在不需要用户干预的情况下刷新。 我想我可以去掉显示下一次刷新时间的消息,只使用ASP.NET行,但是如果有人有更好的想法,我会非常感激的。

    3 回复  |  直到 17 年前
        1
  •  4
  •   Seibar    17 年前

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

    window.location = window.location;
    

    这样,浏览器将不会执行回发,而是向服务器发出新的请求。您将希望在各种浏览器中测试此功能。我刚刚快速测试了FF 3和IE8;两个看起来都不错。

        2
  •  0
  •   Kirtan    17 年前

    您可以编写一些JavaScript来刷新计时器,同时还可以编写一些代码来刷新计时器。要刷新页面,您必须编写此-

    window.location.href=window.location.href窗口

    这行JS将刷新页面,而不刷新您所谈论的NAG屏幕(NAG屏幕实际上是浏览器问的一个问题,关于您是否希望将发布数据重新发布到服务器)。

        3
  •  0
  •   Stephen Wrighton    17 年前

    “nag”来自浏览器,刷新一次发布到服务器的内容,这是因为您的“reload”行。

    还有一个刷新整个页面的选项,就是使用Ajax功能刷新您实际更改的页面部分。

    推荐文章