如何强制浏览器每天凌晨5点自动重新加载rails应用程序?
我有一个安装在壁挂式电视上的网络应用程序,它可以作为我们办公室的一种实时仪表板。它包含的信息每天凌晨4点仅更新一次。我希望每天早上5点自动重新加载网页,而不是每天刷新页面。
Andrew posted this javascript example这应该有用,虽然我想知道因为这是一个Rails 4应用程序,可能有更好的方法使用Rails推出刷新?
答案 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执行。