如何在特定时间自动重新加载网页?

我有一个网站,我想在一定的时间,如3:35下午,而不是像5分钟的特定时间间隔后重新加载。 我怎么做?

下面的JavaScript代码片段将允许您在给定时间刷新:

function refreshAt(hours, minutes, seconds) { var now = new Date(); var then = new Date(); if(now.getHours() > hours || (now.getHours() == hours && now.getMinutes() > minutes) || now.getHours() == hours && now.getMinutes() == minutes && now.getSeconds() >= seconds) { then.setDate(now.getDate() + 1); } then.setHours(hours); then.setMinutes(minutes); then.setSeconds(seconds); var timeout = (then.getTime() - now.getTime()); setTimeout(function() { window.location.reload(true); }, timeout); } 

然后你可以添加一个脚本标签来调用refreshAt()函数。

 refreshAt(15,35,0); //Will refresh the page at 3:35pm 
 <META HTTP-EQUIV="Refresh" CONTENT="5"> 

这将强制页面每5秒重新加载一次。 只需计算正确的时间间隔并将其添加到内容标签

基本上,访问页面时,计算访问时间和重新加载页面的时间之间剩余的时间,并在元刷新页眉中使用剩余的时间。 显然这需要在CGI脚本或Web应用程序中完成,或者可能需要使用SSI(服务器端包含)。 如果您拥有的只是一个静态HTML文件,它将无法正常工作。

另一种方法是使用Javascript,但是如果客户端禁用了Javascript,它将不起作用。

我发现这个页面有一个类似的问题,并用它来破解一些更具体的答案,可能会用到一些。 对于这个项目,我们希望确保在全球感兴趣的现场活动即将进行时刷新页面,激活embedded用户页面的播放器(狭义用例,我知道 – 其他人可能更适合用于它)。

上述答案中的一个挑战是如何处理时区转换,这对我们来说更是一个问题,因为我们希望确保页面在特定的date和时间刷新。 为此,我抓取了目标date和今天date的UTC版本,将它们转换为GMT,然后将Andrew的超时函数设置为两者之间的差异。

 var target = new Date("January 28, 2011 13:25:00"); timeOffset = target.getTimezoneOffset() * 60000; targetTime = target.getTime(); targetUTC = targetTime + timeOffset; var today = new Date(); todayTime = today.getTime(); todayUTC = todayTime + timeOffset; refreshTime = (targetUTC - todayUTC); if (refreshTime > 1) { setTimeout(function() { window.location.reload(true); }, refreshTime); } 

基本上,有很多JavaScript代码可以刷新页面,所以分钟或什么东西,你可以编辑它们在几个小时也刷新。 像这个:

 //enter refresh time in "minutes:seconds" Minutes: 0 to Whatever //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; } var beginrefresh = function () { 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; 

(现在只需计算你想要刷新的分钟和秒钟,例如现在每天中午,如果现在是中午的话:

 var limit = "1440:00"; 

现在你可以使用这个代码,除了大多数服务器的时间不工作,并且你提供给我们的信息,我们真的不能再做任何事情。 编辑你的问题,并告诉我们,如果你想要与服务器的时间或其他东西。

使用它每20秒刷新页面。

 <META HTTP-EQUIV="refresh" CONTENT="20">