web-dev-qa-db-ja.com

自動更新により、Webアプリに追加の負荷がかかりますか?

Alfresco share Community Editionを試しています。ユーザーが質問できるディスカッションサイトがあります。ここでの問題は、alfrescoはすぐに自動更新を提供しないことです。ユーザーは、誰かが自分の投稿に返信しているかどうかを確認するために、ページを継続的に更新する必要があります。

JavaScriptを使用してページを自動再読み込みできることを学びました。

  1. 自動更新はクライアント側で実行されますか、それともwebappサーバーで実行されますか?
  2. 自動更新はwebappに負担をかけるので、150人を超えるメンバーがログインし、自動更新が発生すると応答しなくなりますか?
1
samnaction

ユーザーは、誰かが自分の投稿に返信しているかどうかを確認するために、ページを継続的に更新する必要があります。 JavaScriptを使用してページを自動再読み込みできることを学びました。自動更新はクライアント側で実行されますか、それともwebappサーバーで実行されますか?

Webサイトのリロードは、常にクライアントによって開始されます。

サーバーは、データの要求を受け入れ、ディスクで必要なデータを確認し、必要なスクリプト処理プログラムを実行して、結果をクライアントに送り返すだけです。サーバーの電源、および目的(電子メールなどを含む)でサーバーを使用している人数に応じて、このプロセスには通常100ミリ秒から約2秒かかります。 200msを超えるものは災害です。

すべてを言ったが、自動更新の問題を解決する最良の方法は、javascriptを使用することです。あなたがしたいのは、Javascriptの独自のタイムアウト機能で自動タイマーを設定することであり、頻繁に、AJAXテクノロジー(高度なJavaおよびXML)を使用してコンテンツロードを生成するページを作成します。スモールページを呼び出す頻度を高く設定しないでください。そうしないと、アプリに負担がかかります。

ページの場合、単純なhtmlページではなく、動的スクリプト(phpなど)である必要があります。それがすることは、新しいテキストを吐き出すだけです。そして、javascriptで、あなたはすでにスクリーン上にある既存のテキストにそれを追加します。

この例は、JavaScriptで作成された使いやすいjavascriptであるはずのJqueryコードで見つけることができます。

別の方法は、昔ながらの方法でライブメッセージをIFrameに表示し、静的コンテンツをIFrameの外に表示することですが、その場合、IFrameのhtmlコードには自動更新を含める必要があります。メタタグまたはJavaScript。

自動更新はwebappに負担をかけるので、150人を超えるメンバーがログインし、自動更新が発生すると応答しなくなりますか?

更新が速すぎると、応答しなくなる可能性があります。サーバーが正常でない場合(たとえば、ハッキングされた場合)も応答しません。

1
Mike

自動更新はクライアント側でトリガーされ、クライアントにサーバーからの追加情報を更新させます。

サーバーが処理するのに十分な強さでなければならないという追加情報をサーバーに要求します。サーバーが自動更新で処理できるユーザー数は、多くの要因に依存します。

  • サーバーの能力
  • 更新の頻度
  • ウェブサイトを動かすコードの効率性
  • どのくらい更新されますか(ページ全体ですか、それとも一部ですか?)

自動更新は、ユーザーが常に更新ボタンを押し続けるよりもサーバーにかかる負荷が少ない方法で実装できることがわかります。このサイトは Websockets を使用して、変更が発生したことをページに効率的に通知します。

0

便利な機能ですが、ブラウザをハードに更新するのは間違った方法です。ユーザーはあなたを嫌い、大勢で辞めます(少なくとも、サーバー負荷の問題を解決します)。ブラウザ側でJavascriptとタイマーを使用して行われますが、私が言うように...しないでください。

それをうまく行うサイトは、AJAXのようなものを使用してサーバーをポーリングし、必要に応じてページの一部を書き換えます。それは簡単ではありません。私は誰かがあなたのプラットフォームのためにこのようなものをすでに書いていると思うでしょう、車輪を再発明する必要はありません。そうでない場合は、他のプラットフォームを見てください。それができない場合は...

0
Harper

別の手法を使用できます。変更を共有するためのWebソケットサービス(例-firebase)です。これにより、要求と再ロードの必要性を最小限に抑えることができます。

さらに詳細が必要な場合は、同じスレッドで返信して、ポイントを追加できるようにします(詳細な説明)

0
Vikas Avnish