0

私はPHPを使用してWebページのサーバー側を記述し、javascriptを使用してクライアント側を構築しています。

Web サイトには、サーバー側から受信したデータを表示する div があります。たとえば、データベースに登録されているユーザーの現在の数を表示するとします。この数は未知の期間に変化し続けます。たとえば、この数は 10 時間で同じでも、10 分で 1000 ずつ増加する可能性があります。

の最初の質問は、ウェブサイトがこのデータの最新またはほぼ最新の値を常に表示できるように、この機能を実行するための最良のアプローチは何ですか?

私の元のアプローチは、Javascript AJAX を使用し、setInterval(1000) (-1 秒) でラップして、Ajax 要求をサーバー側に送信することです。しかし、これがクライアント側にとって重すぎるのか (javascript はシングル スレッドであるため、1 秒ごとに実行される関数がある場合は遅くなる可能性があります)、サーバー側でさえ (たとえば、何百人ものユーザーがこの Web サイトを開く場合) かどうかはわかりません。何百ものリクエストがサーバー側に送信されます)。これでいいの?

2 番目の質問は、これが適切なアプローチではない場合、同じ目標を達成するために他に何ができるかということです。逆に使ってみようかなと思っていました。たとえば、サーバー側に更新がある場合、サーバー側で PHP を使用してこの更新をクライアント側にプッシュするか、PHP スクリプトを使用して HTML に表示されるデータを直接変更します。これは可能ですか?もしそうなら、これは良いアプローチですか?

提供されたコードや例は本当にありがたいです。

4

2 に答える 2

0

確かに、時間の経過とともに分散する更新には AJAX を使用できますが、1 秒ごとにサーバーに接続したい場合は、使用しないことをお勧めします。

ここにはいくつかのオプションがあります。

  • @Kayがすでに述べたようlong pollingに、オプションかもしれません。

  • または、 WebSocketsや、 Meteorなどの WebSockets をサポートするフレームワークを調べることもできます。

于 2013-04-02T23:26:13.237 に答える