如何在每 24 小时后调用一个 JS 函数并将结果与​​时间戳一起保存在 cookie 中?

Posted

技术标签:

【中文标题】如何在每 24 小时后调用一个 JS 函数并将结果与​​时间戳一起保存在 cookie 中?【英文标题】:How to call a JS function after every 24 hours and save the result with timestamp in a cookie? 【发布时间】:2019-02-28 21:56:24 【问题描述】:

我想要一个函数,它可以读取 cookie 文件或 cookie 并调用另一个函数并将时间戳与结果一起保存。 条件:它只会调用函数 if-

cookie 不存在或为空 已经超过 24 小时了

【问题讨论】:

您可能在某个时候想要一个网络服务,但我建议您在深入了解一个非常具体和不寻常的解决方案之前先看看xyproblem.info 所以这个不打开浏览器就不行了? 请花点时间阅读帮助页面,尤其是"What topics can I ask about here?"、"What types of questions should I avoid asking?"的部分,更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples。 @Vyom 您的问题仍然不正确。我们不知道您尝试了什么。看来您陷入了XY问题。请阅读此meta.stackexchange.com/questions/66377/what-is-the-xy-problem 在没有 php 或浏览器的情况下检索新结果?究竟是什么来检索它们?除了 cron 工作?请退后一步,告诉我们您的实际问题是什么;不要问我们如何实施您提出的糟糕解决方案。 【参考方案1】:

为确保程序可靠运行,此类功能的传统方法是使用 cron 作业、运行守护程序,或者最坏的情况是在服务器上运行脚本。

但是,您打算在浏览器上运行它,只要您保持浏览器窗口打开并处于活动状态,这并非不可能。您可以使用setInterval 每 24 小时调用一次函数。 new Date() 会让你获取时间戳,here is more info on how to manipulate cookies in javascript,因为不清楚你对 cookie 读取/保存的确切意图是什么。

话虽如此,为了长时间可靠地执行作业,重新考虑您的架构可能是您正在寻找的真正解决方案。

【讨论】:

【参考方案2】:

你可以这样做:

setInterval(function() var yourCookieValue = new Date().getTime(); setCookie("yourCookie", yourCookieValue, 30); , 1000*60*60*24);

【讨论】:

以上是关于如何在每 24 小时后调用一个 JS 函数并将结果与​​时间戳一起保存在 cookie 中?的主要内容,如果未能解决你的问题,请参考以下文章

我如何设置在流程开始后24小时触发一次AWS Lambda?

如何使用服务结构安排服务在每天和特定时间运行?

如果再次调用 Javascript 函数,如何杀死它?

如何使用多个函数对 fetch 的结果求和?

按下按钮后如何显示 24 小时计数器

网页前端JS呈现时间戳为与当前时间比较结果