-1

より高速でパフォーマンスの高いオークション サイトを作成するための提案が必要です。基本的に、カウントダウンを実行するためにsetintervalおよびsettimeout関数を使用して知識を収集し、それを開発しました(リクエストが毎秒サーバーに送信されるため、サーバー上で非常に遅くなります)

本当に必要なのは、サーバーがリクエストを受け取ったら => オークションで探しているすべてのユーザーに対してレスポンスを更新する必要があることです。

これに対する提案は大歓迎です。ありがとうございました。

4

5 に答える 5

2

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

Is there some way to PUSH data from web server to browser?

于 2012-07-20T10:10:49.773 に答える
0

オークション識別子を作成できます。クライアント側は、AJAX呼び出しを使用して、毎秒、または必要な頻度で変更を確認する必要があります。

お気に入り

needsUpdate(auctionId);

そしてその見返りにfalse、または更新された値を取得します

于 2012-07-20T09:58:06.707 に答える
0

あなたの要件を詳細に知らなくても、過去にその問題をどのように解決したかを次に示します。まず、スクリプトの実行はサーバーに負荷がかかります。クライアントごとに毎秒これを行い、多くのクライアントがある場合、大規模なデータセンターが必要になります。;-)

代わりにプレーンテキスト ファイルを使用してください。「auction2343.txt」のようなものを考えてみましょう。2343 は、あなたにとって意味のあるオークション ID です。

サーバーは、そのファイルの内容を返すために (高価な) プロセスを呼び出す必要はありません。

サーバー側では、必要に応じてファイルを更新するために毎秒実行される cron ジョブを作成します。または、誰かが入札したときにのみ更新します。あなたの状況で何がうまくいくかを考えてください。

ファイルには、Javascript が何をすべきかを決定するために使用できるもの、たとえば最後の入札などを入れます。

JavaScript が前回の値よりも高い入札額を見つけた場合は、サーバー上で実際の (高価な) スクリプトを起動したり、単にクライアントを表示したり、必要なものを表示したりするなど、追加の操作を行うことができます。

HXR (「ajax」) を使用する場合は、テキスト ファイル (「auction2343.txt」) の URL にタイムスタンプを追加して、クライアントがキャッシュされたバージョンを取得しないようにしてください。

例えば:

http://www.example.com/auction2343.txt?timestamp=[ここにミリ秒]

于 2012-07-20T10:02:59.633 に答える
0

別の種類のサーバーをセットアップします。通常の PHP サーバーに大量のリクエストを送信して、優れたオークション サイトを運営しようとしないでください。

いくつかのより良いオプションがあり、そのうちの 1 つに nodejs ( http://nodejs.org/ )が含まれます。

それ以外の場合は、現在のアプリケーションで longpolling を試してください。しかし、それはサーバーに多くのストレスを与え続けます.

于 2012-07-20T10:08:33.997 に答える
0

ここでも同様の問題があり、かなり良い答えがあります:

基本的な「ロングポーリング」を実装するにはどうすればよいですか?

ただし、問題は、apache2 がブロッキング Web サーバーであるため、サーバーを時々ポーリングして応答を取得する必要があることです。

node.js http://nodejs.org/のようなテクノロジーを使用すると、ページを更新することなく、サーバー側からクライアント側にプッシュできます。

于 2012-07-20T10:13:01.810 に答える