特定の時間に1つのコードを実行する必要があるWebサイトを開発しています。
Cron Jobを作成するか、JavaScript Timing Eventまたは同様のものまたはJavaScriptを使用する方が、より速く、より適切な選択です。
特定の時間に1つのコードを実行する必要があるWebサイトを開発しています。
Cron Jobを作成するか、JavaScript Timing Eventまたは同様のものまたはJavaScriptを使用する方が、より速く、より適切な選択です。
あなたは2つのまったく異なることについて質問しています。
cronジョブはサーバーに基づいており、JavaScript(NodeJSを使用している場合を除く)はクライアントに基づいています。これが次のようなタスクであるかどうかによって異なります。
Cron(1)またはJavaScript(2)をそれぞれ選択します。
リンゴとオレンジの比較のようなものです。オレンジジュースとアップルパイのどちらがいいか教えてくれない限り、これ以上のお手伝いはできません。Cronはサーバー側のタスク実行の信頼性を高めるためのものであり、JavaScriptのタイムアウトはユーザーごと(またはクライアントごと)であり、実行の信頼性は低いことを覚えておいてください。
これは、特定の時間に実行する必要のあるコードの性質に完全に依存します。
誰かがWebサイトを閲覧しているかどうかに関係なく、毎日午後2時などに発生する必要がある場合は、cronジョブを使用する必要があります。
一方、ユーザーごとに特定の時間に実行する必要がある場合(つまり、一定のアイドル時間の後にユーザーをページから自動的にログアウトするため)、適切な呼び出しはJavascriptタイミング関数です。
Javascriptタイミング関数は、誰かが実際にページを見ている場合にのみ機能し、その後、複数のユーザーに対して複数回呼び出されます。これは、状況に応じて望ましい場合と望ましくない場合があります。
もちろん、サーバー上でNode.jsを実行している場合もあります。その場合、JavaScriptタイミング関数をcronジョブであるかのように使用できます。
つまり、cronを使用します
別の回答へのコメントで、あなたは次のように述べました。
毎週1回php関数を実行したい
この場合、1つの主要なオプション(* nixを使用していると仮定)があり、それはcronです(Windowsの代替手段が何であるかはわかりません)。Cronはこの機能のために特別に設計されており、使用するかどうかに関係なく、サーバー上で(他のシステム機能の場合)実行されている可能性が高いため、速度は問題になりません。
Node.jsを使用しないでください
Node.jsは、PHPの代替サーバーサイドテクノロジーです。phpの代わりにサーバー側で使用します。すでにPHPを使用している場合は、それを忘れてください。Node.jsが言及されている唯一の理由は、JavaScriptについて質問したためです。
また、毎週のタイミングイベントの場合、JavaScriptタイマーはお勧めできません。setTimeout()関数はミリ秒単位で機能し、数秒と数分(場合によっては数時間)で機能しますが、数週間では機能しません。
サーバーサイドJavaScript(Node.jsなど)を使用する場合は、おそらく以下のPHPAlternativeと同様のことを行う必要があります。
PHPの代替
もちろん、ホスティング環境(特に安価な環境)によっては、cronが利用できない場合があります。この場合、別の戦略を考え出す必要があり、おそらくPHPを使用するのが最善でしょう。私が以前に行ったことを見たことが、これらの線に沿っています。
長所:
短所:
javascriptタイミングイベントを実行するには、Webページを開く必要があります。つまり、そのページを公開する必要があります。あなたはそれをしたくありません。cronジョブは簡単で効果的です。私は彼らが好き。あなたはそれをすべきです。