如何使页面每天自动刷新

时间:2018-01-19 06:02:07

标签: 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); console.log("reloading"); }, timeout);
}

...我称之为

refreshAt(00,01,00);

然而,在Mac上的Chrome中,它永远不会刷新。我接到了我脚本顶部附近的电话,它位于正文中。声明位于脚本的底部。 在我的Android手机上,如果我在白天在标签之间进行更改,则会刷新,但不正确,后者在我添加刷新功能之前效果更好。 我很困惑。

2 个答案:

答案 0 :(得分:0)

这实际上取决于您正在处理的应用程序类型。如果它是网站或应用程序,则每次用户打开页面时都会刷新页面。但是,如果您正在处理的应用程序始终显示没有用户操作选项,则可以设置 CRON 作业。 这还取决于您使用的框架类型,角度,反应等。但是,使用普通的javascript,您可以设置在特定时间每天运行的作业。 这是我觉得有用的库的链接。 https://www.npmjs.com/package/cron

var CronJob = require('cron').CronJob;
var job = new CronJob('0 7 * * *', function() {
  /*

     *+---------------- minute (0 - 59)
      |  +------------- hour (0 - 23)
      |  |  +---------- day of month (1 - 31)
      |  |  |  +------- month (1 - 12)
      |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
      |  |  |  |  |
      *  *  *  *  * 
  */

      }, function () {
        /* This function is executed when the job stops */
      },
      true, /* Start the job right now */
      timeZone /* Time zone of this job. */
    );

您可以查看文档并自己完成工作。

答案 1 :(得分:0)

希望这有效。

function refreshAt(hours, minutes, seconds)
{
    var now = new Date(), then = new Date();
    then.setHours(hours,minutes,seconds,0);
    if(then.getTime()<now.getTime())
    {
        then.setDate(now.getDate() + 1);
    }

    var timeout = (then.getTime() - now.getTime());
    setTimeout(function() { window.location.reload(true); }, timeout);
}
refreshAt(0,1,0);