我正在开发需要在特定时间执行一个代码的网站。
哪个是编写 Cron Job 或使用 JavaScript Timing Event 或类似的东西或 JavaScript 更快更好的选择
我正在开发需要在特定时间执行一个代码的网站。
哪个是编写 Cron Job 或使用 JavaScript Timing Event 或类似的东西或 JavaScript 更快更好的选择
你在问一个关于两个完全不同的事情的问题。
Cron 作业基于服务器,JavaScript(除非您使用 NodeJS)基于客户端。取决于这是否是一项任务:
分别选择 Cron (1) 或 JavaScript (2)。
这真的就像苹果和橘子之间的比较。除非您告诉我们您想要橙汁还是苹果派,否则我们将无法为您提供更多帮助。请记住,Cron 是为了更可靠的服务器端任务执行,而 JavaScript 超时是每个用户(或者更确切地说是每个客户端),不太可靠的执行。
这完全取决于您需要在特定时间执行的代码的性质。
如果这是每天下午 2 点或其他时间必须发生的事情,无论是否有人在查看该网站,那么您应该为此使用 cron 作业。
另一方面,如果它需要在每个用户的特定时间执行(即,在一定的空闲时间后自动将用户从页面注销),那么适当的调用是 Javascript 计时函数。
Javascript 计时功能仅在有人实际查看页面时才有效,然后它将为多个用户多次调用,这可能会或可能不会根据您的情况而定。
当然,您可能正在服务器上运行Node.js,在这种情况下,您可以像使用 cron 作业一样使用 Javascript 计时函数。
简而言之,使用 cron
在您对另一个答案的评论中,您说:
我想每周执行一次 php 函数
在这种情况下,您有一个主要选项(假设您使用 *nix),那就是 cron(我不知道 Windows 的替代方案是什么)。Cron 是专门为此功能设计的,无论您是否选择使用它,它很可能无论如何都在您的服务器上运行(对于其他系统功能),因此速度不是问题。
不要使用 Node.js
Node.js 是PHP的替代服务器端技术。您将在服务器端使用它而不是php。如果您已经在使用 PHP,那就忘记它。提到 Node.js 的唯一原因是您询问过 JavaScript。
此外,对于每周一次的计时事件,JavaScript 计时器也不是一个好主意。setTimeout() 函数以毫秒为单位工作,适用于在几秒和几分钟(可能是几小时)内工作,但不是几周。
如果您要使用服务器端 JavaScript(如 Node.js),您可能需要执行类似于下面的 PHP 替代方案的操作。
PHP 替代方案
当然,根据您的托管环境(尤其是便宜的),cron 可能不可用。在这种情况下,您将不得不提出不同的策略,并且您可能最好使用 PHP。我以前见过的一些事情是这样的:
优点:
缺点:
要运行 javascript 计时事件,您需要打开网页。这意味着您必须公开该页面。你不想那样做。Cron 作业既简单又有效。我喜欢他们。你应该这样做。