使用Rails

时间:2015-08-11 00:30:08

标签: javascript ruby-on-rails page-refresh

如何强制浏览器每天凌晨5点自动重新加载rails应用程序?

我有一个安装在壁挂式电视上的网络应用程序,它可以作为我们办公室的一种实时仪表板。它包含的信息每天凌晨4点仅更新一次。我希望每天早上5点自动重新加载网页,而不是每天刷新页面。

Andrew posted this javascript example这应该有用,虽然我想知道因为这是一个Rails 4应用程序,可能有更好的方法使用Rails推出刷新?

2 个答案:

答案 0 :(得分:0)

加载页面后,服务器无法影响浏览器状态。想象一下如果可以做到会发生什么。

将数据发送到客户端的一个解决方案是通过WebSockets,但AFAIK这些在Rails 4中尚未得到支持,但是它们正在使用Rails 5.我还没有使用过使用rails的技术,但这可能是解决方案:websocket-rails

如果您不喜欢使用WebSockets支持,那么只有您已经找到的解决方案。

答案 1 :(得分:0)

您可以使用javascript超时功能每24小时运行一次:

function YourFunction(){
    var dateOne = new Date();
    var dateTwo = new Date(dateOne.getTime() + 86400000); // + 1 day in ms
    //now setting it to 5 AM
    dateTwo.setHours(5);
    dateTwo.setMinutes(0);
    dateTwo.setSeconds(0);
    dateTwo.setMilliseconds(0);

    //getting the delay in ms 
    var timeDelay = dateTwo.getTime() - dateOne.getTime(); // delay in ms until next day 5:00:00 AM

     //preparing for next day's execution:
    setTimeout(function(){ 
    window.location = window.location.pathname;
    }, timeDelay);
}

或者您可以使用NodeJS runtime,这样您就可以从服务器推送javascript执行。