在ASP.NET中按特定时间刷新页面

chhkpiq4  于 2022-11-19  发布在  .NET
关注(0)|答案(6)|浏览(117)

我要在特定时间刷新页面。
http-equiv="refresh" content="30"页面是刷新非常30秒,但我希望页面是在特定的时间刷新.喜欢页面是每天1:30刷新.

oipij1gg

oipij1gg1#

你可以用javascript创建一个倒计时器,当页面被加载到浏览器中时,它就开始计时。
将此添加到您的页面:

<script language="javascript" type="text/javascript">
  setTimeout("window.location = 'yourpage.aspx'", <%= CalcMilisecsToNext130pm() %>);
</script>

你可能会在内联上破解一些东西来获得直到下午1:30的毫秒数。或者在你的代码背后创建一个简单的方法...

lrpiutwd

lrpiutwd2#

DateTime targetDate = ...;
long secondsTilRefresh = Math.Floor((targetDate - DateTime.Now).TotalSeconds);

然后,使用该值填充 metarefresh标签。当然,他们的浏览器可能不会保持打开那么长时间,和/或浏览器可能不支持大值。

gblwokeq

gblwokeq3#

刷新页面意味着向服务器发送请求。您可以编写一个Windows服务,在每天1:30向您的页面发送请求。

jum4pzuy

jum4pzuy4#

我建议你在页面加载时使用JavaScript来计算现在和下次加载页面之间的时间差。然后设置一个超时(window.setInterval)。然后你可以将JavaScript“位置”设置为相同的页面,并在预定的时间加载页面。
Jakob抢先了我一步!:)

q1qsirdb

q1qsirdb5#

服务器时间把这个:

<% DateTime dte = DateTime.Now; %>
<meta http-equiv="refresh" content="<%=86400 - (((dte.Hour * 60) + dte.Minute) * 60) %>">

对于基于客户端的时间,请使用javascript setTimeout方法。

cgfeq70w

cgfeq70w6#

您可以使用类似以下命令,获取当前日期与明天日期之间小时数差,并转换为毫秒,然后使用settime out

var todayDateTime = new Date();
var tommorowDateTimeAtSixAM = new Date(todayDateTime.getFullYear(), todayDateTime.getMonth(), todayDateTime.getDate(), 6, 0, 0);

var hoursdifference = Math.abs(tommorowDateTimeAtSixAM .getTime()-todayDateTime.getTime())/3600000; 

var milliSecondsDifference = hoursdifference * 60 * 60 *1000;

setTimeout(function(){
    window.location.reload();
}, milliSecondsDifference);

相关问题