1

私はこれに対する解決策を数か月間断続的に探してみましたが、答えに近づくことさえできませんでした.検索するときにどのキーワードを使用すればよいかさえわかりません.ここの誰かが答えを持っているか、少なくとも.私が探しているべき方向に私を向けることができます。

私の会社では、人々が問題を追加できるイントラネット ページをセットアップしました (ヘルプデスク チケット システムによく似ています)。ユーザーは、必要に応じてこれらの問題に更新を追加できます。したがって、私は 2 つのデータベース テーブルを (とりわけ) 持っています - 1 つには問題があり、もう 1 つにはそれらの問題に対する更新があります。

jqueryのajaxリクエストを使用して、ユーザーのデスクが現在開いているすべての問題とその問題の最新の更新(ある場合)についてデータベースをポーリングするWebサイトをセットアップしました。これらは、ユーザーの好みに応じて、更新された順序または発行された順序で一覧表示されます。

この div 全体が 7 秒ごとに更新され、リスト全体が更新されます。したがって、ページが更新されるたびにブラウザーのページの途中で問題のテキストを強調表示すると、その強調表示が失われます。この更新は、私のサーバーにも大きな負荷がかかります。全員のブラウザがデータベース全体の内容を 7 秒ごとに更新し続けると、データベースに多くの負荷がかかります。

私がやりたいことは、最後の更新以降に異なる項目のみをブラウザーに更新させることです。ビューが最後に更新されたときにユーザーデータベースを更新するように設定したので、7秒ごとに(フロントページを表示している場合)、このフィールドは新しいUNIXタイムスタンプを取得します。問題と更新の作成時間と、問題の更新されたタイムスタンプも取得しました (その問題の新しい更新が作成されると、更新のタイムスタンプが新しい UNIX 時間で更新されます)。

これは、私が知る限り、Facebook のニュース フィードが行っていることです。時々、新しい投稿が一番上に追加され、古い投稿への返信がその下に追加され、新しいいいねやシェアが更新されます。フィード全体ではなく、フィードのセクションのみを更新しています。これが私がしたいことです。

このようなことを行う方法に関するチュートリアルを知っていますか? Facebookタイプのニュースフィードシステムを検索すると、FacebookのAPIとのインターフェース方法しか得られないためです。前もって感謝します。

4

1 に答える 1

1

プッシュ技術を調べてみてください:

プッシュ テクノロジー - ロング ポーリング

プッシュ テクノロジー、特にロング ポーリングは、このような状況で役立ちます。これは、電話アプリが新しいデータや更新をユーザーやサブスクライバーに送信するときに使用する概念です。この場合、サーバーへの接続は維持されます。ユーザーのマシンは、時折サーバーに新しい情報をポーリングします。ただし、サーバーは、ユーザーに提供する新しい情報がある場合にのみ、応答に応答します。この場合、サーバーを 7 秒ごとにポーリングできますが、サーバーは応答せず、新しい情報があるまで div を再描画しません。

div の更新に関する限り、jquery .clone および .append オプションを使用して、新しい項目をそれぞれ独自のスパンに追加してみてください。

例えば:

HTML:
<span id="itemX"></span>

On Ajax Success:
var tile = $('#itemX').clone().attr('id','item1').text("Text returned from ajax call.");
$('#divName').append(tile);

このようにして、ajax 呼び出しから返された新しい項目をそれぞれ変更し、その上の項目に影響を与えることなく下に追加することができます。

幸運を。お役に立てれば。

于 2012-09-18T21:04:57.430 に答える