如何在某一时间自动重新加载网页?(How to automatically reload a web

2019-06-17 21:57发布

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

Answer 1:

下面的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);
}

然后,你可以添加一个script标签调用refreshAt()函数。

refreshAt(15,35,0); //Will refresh the page at 3:35pm


Answer 2:

<META HTTP-EQUIV="Refresh" CONTENT="5">

这将迫使页面每5秒刷新。 只要计算出正确的时间间隔,并将其添加到内容标签



Answer 3:

基本上,当页面被访问时,计算接入时间,你要重新加载页面的时间之间有多少剩余时间,并使用剩余时间在元刷新头。 显然,这将需要在CGI脚本或Web应用程序使用SSI(服务器端包含)来完成,或者可能; 如果你已经是一个静态的HTML文件,它不会工作。

另一种方法是使用JavaScript,但如果客户端已禁用JavaScript将无法正常工作。



Answer 4:

我发现了一个类似的问题这个页面,并用它来破解出一个更具体的答案,可能是使用的一些。 对于这个项目,我们希望确保该页面刷新一次,是全球关注的现场活动即将去上,激活用户的页面上的播放器嵌入(窄的使用情况,我知道 - 其他人可能有更好的使用它)。

在上面的答案的一个挑战是如何处理时区转换,是因为我们希望确保该页面刷新,在特定的日期和时间,这是更大的问题,对我们来说。 要做到这一点,我抓住了目标日期和今天的日期的UTC版本,它们转换为GMT,然后安德鲁的超时功能设置为两者之间的区别。


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);
}


Answer 5:

基本上,有很多的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";

现在,您可以使用此代码除,大多不与服务器时间的工作,您提供给我们的信息,我们真的不能做任何事情更多。 编辑您的问题告诉我们,如果你想让它与服务器的时间,还是其他什么东西来计时。



Answer 6:

这对于我的目的更好地工作。

如果你能够利用jQuery和MomentJs,你可以这样做:

(function () {
    var $ = require('jquery');
    var moment = require('moment');

    function refreshPageAtTime(expiration, countdownElement) {
        var now = moment.utc();
        console.log('now', now);
        var expirationMoment = moment.utc(expiration, 'YYYY-MM-DD kk:mm:ss');
        console.log('target', expirationMoment);
        var secondsUntilRefresh = expirationMoment.diff(now, 'seconds');//http://momentjs.com/docs/#/displaying/difference/
        console.log('diff in seconds', secondsUntilRefresh);
        if (secondsUntilRefresh > 1) {
            setInterval(function () {
                secondsUntilRefresh--;
                console.log('seconds remaining', secondsUntilRefresh, 'seconds');
                if (secondsUntilRefresh <= 10) {
                    countdownElement.html(secondsUntilRefresh + '...');
                    if (secondsUntilRefresh === 0) {
                        console.warn('Refreshing now at ' + moment.utc());
                        window.location.reload(true);
                    }
                }
            }, 1000 * 1);
        }
    }

    $(document).ready(function () {
        var expiration = $('form').attr('data-expiration');
        console.log('expiration', expiration);
        $('.btn-primary:submit').after('<div id="countdownToRefresh" style="display: inline-block; color: #999; padding: 10px;"></div>');
        refreshPageAtTime(expiration, $('#countdownToRefresh'));

    });
})();


Answer 7:

使用此刷新页面每20秒。

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


文章来源: How to automatically reload a web page at a certain time?