1

私は Web 開発の初心者で、このソーシャル ネットワーキング サイトに取り組んでいます。

ここで、人がオンラインかどうかを表示する機能を追加したいと考えています。

これを行う方法の 1 つは、データベースにオンライン ステータス ビットを保持することです。

私の質問は、動的に行う方法です。ページが読み込まれ、ユーザー (接続など) がオンラインになったとします。そのページでその接続のステータスを動的に変更するにはどうすればよいですか。

このタイプの追跡に使用できるツール (ライブラリ) があるかどうかを知りたいと思いました。私のサイトは、django フレームワークを使用した Python です。javascript/jquery を使用して何かできると思います。正しい方向に進んでいるかどうかを知りたいですか、それとも他に調べるべきことがありますか?

4

2 に答える 2

1

last_activity DateTimeFieldaと a OneToOneFieldto を使用して新しいモデルを作成しますUser。または、 をサブクラスUser化している場合、django 1.5 でカスタムUserを使用している場合、またはユーザー プロファイルを使用している場合は、そのモデルにフィールドを追加するだけです。

last_activityリクエストごとに各ユーザーのフィールドを自動的に更新するカスタム ミドルウェアを作成します。

timedeltais_onlineを使用してユーザーの非アクティブ期間を判断し、ユーザーがオンラインかどうかのブール値を返すメソッドをモデルの 1 つに記述します。たとえば、last_activity15 分以上前の場合は、 を返しFalseます。

特定のユーザーのオンライン ステータスを返すために、jQuery ajax を介してポーリングされるビューを記述します。

于 2012-11-28T17:03:42.643 に答える
0

Sanjay が言うように、Django キャッシュ (Redis または Memcache) のようなメモリ ソリューション (オンライン ステータスは非常に短時間しか使用されません) を使用することを好みます。

すでに読み込まれている Web ページでユーザーのオンライン ステータスを更新する簡単な方法が必要な場合は、jQuery などのライブラリを使用し、ユーザーのステータスを示す URL を AJAX ポーリングしてから、ページのごく一部を更新して、欲しかったステータス。このページをあまり頻繁にポーリングしないでください。15 秒に 1 回が妥当と思われます。

于 2012-11-28T16:54:25.537 に答える