より高速でパフォーマンスの高いオークション サイトを作成するための提案が必要です。基本的に、カウントダウンを実行するためにsetintervalおよびsettimeout関数を使用して知識を収集し、それを開発しました(リクエストが毎秒サーバーに送信されるため、サーバー上で非常に遅くなります)
本当に必要なのは、サーバーがリクエストを受け取ったら => オークションで探しているすべてのユーザーに対してレスポンスを更新する必要があることです。
これに対する提案は大歓迎です。ありがとうございました。
より高速でパフォーマンスの高いオークション サイトを作成するための提案が必要です。基本的に、カウントダウンを実行するためにsetintervalおよびsettimeout関数を使用して知識を収集し、それを開発しました(リクエストが毎秒サーバーに送信されるため、サーバー上で非常に遅くなります)
本当に必要なのは、サーバーがリクエストを受け取ったら => オークションで探しているすべてのユーザーに対してレスポンスを更新する必要があることです。
これに対する提案は大歓迎です。ありがとうございました。
You will be interested in "server push" approach.
https://www.google.co.uk/search?q=server+to+browser+push
There are few discussions here too:
Push notification to the client browser
and
オークション識別子を作成できます。クライアント側は、AJAX呼び出しを使用して、毎秒、または必要な頻度で変更を確認する必要があります。
お気に入り
needsUpdate(auctionId);
そしてその見返りにfalse、または更新された値を取得します
あなたの要件を詳細に知らなくても、過去にその問題をどのように解決したかを次に示します。まず、スクリプトの実行はサーバーに負荷がかかります。クライアントごとに毎秒これを行い、多くのクライアントがある場合、大規模なデータセンターが必要になります。;-)
代わりにプレーンテキスト ファイルを使用してください。「auction2343.txt」のようなものを考えてみましょう。2343 は、あなたにとって意味のあるオークション ID です。
サーバーは、そのファイルの内容を返すために (高価な) プロセスを呼び出す必要はありません。
サーバー側では、必要に応じてファイルを更新するために毎秒実行される cron ジョブを作成します。または、誰かが入札したときにのみ更新します。あなたの状況で何がうまくいくかを考えてください。
ファイルには、Javascript が何をすべきかを決定するために使用できるもの、たとえば最後の入札などを入れます。
JavaScript が前回の値よりも高い入札額を見つけた場合は、サーバー上で実際の (高価な) スクリプトを起動したり、単にクライアントを表示したり、必要なものを表示したりするなど、追加の操作を行うことができます。
HXR (「ajax」) を使用する場合は、テキスト ファイル (「auction2343.txt」) の URL にタイムスタンプを追加して、クライアントがキャッシュされたバージョンを取得しないようにしてください。
例えば:
http://www.example.com/auction2343.txt?timestamp=[ここにミリ秒]
別の種類のサーバーをセットアップします。通常の PHP サーバーに大量のリクエストを送信して、優れたオークション サイトを運営しようとしないでください。
いくつかのより良いオプションがあり、そのうちの 1 つに nodejs ( http://nodejs.org/ )が含まれます。
それ以外の場合は、現在のアプリケーションで longpolling を試してください。しかし、それはサーバーに多くのストレスを与え続けます.
ここでも同様の問題があり、かなり良い答えがあります:
基本的な「ロングポーリング」を実装するにはどうすればよいですか?
ただし、問題は、apache2 がブロッキング Web サーバーであるため、サーバーを時々ポーリングして応答を取得する必要があることです。
node.js http://nodejs.org/のようなテクノロジーを使用すると、ページを更新することなく、サーバー側からクライアント側にプッシュできます。