0

ご覧のとおり、Facebookには5つの開いているタブがありますが、そのうちの1つで「ログアウト」してから別のタブに移動すると、ログアウトしていることを検出して通知し、ユーザーをにリダイレクトします。ログインページ。これはどのように機能していますか?PHP/jQueryを使って自分のWebアプリ用にそのようなものを作りたいと思っています。ヒントが必要です...

前もって感謝します

4

4 に答える 4

3

他のアプリケーションと同じように、ログアウトすると、サーバーはクライアントからCookieを削除するか、その値を変更して「ログアウト」ステータスを示します。後で新しいリクエストが行われると、サーバーはCookieでこの状態を検出し、ログアウトしたユーザーに適切なコンテンツを返します。

FacebookはAJAXでこれを行いますが、これによって状況が変わることはありません。ブラウザの開発者ツールを使用してFacebookのAJAXリクエストをスパイすると、すべての厄介な詳細を見ることができます。

于 2012-10-02T08:15:57.980 に答える
3

FacebookはページでCometテクノロジーを使用しています。すべてのページはオープンHTTPリクエストを保持します。何かが変更されるとすぐに(たとえば、「着信チャットメッセージ」、またはあなたの場合は「ユーザーがログアウトしました」、この情報はクライアントにプッシュされます。

WebサーバーとしてNGINXを使用している場合は、nginx_http_push_moduleを確認することをお勧めします

于 2012-10-02T08:23:59.527 に答える
1

それは最も確実にAjaxリクエストを使用します。Ajaxリクエストは非同期的に(ページを更新せずに)Webサーバーに接続します。

AjaxリクエストにJQueryライブラリを使用するのは非常に簡単です:APIへのリンク

于 2012-10-02T08:14:16.010 に答える
0

最も簡単な方法の1つは、ユーザーがログインしているかどうかを制御するSession変数を用意することです。ログアウトを押すと、その変数がfalseに設定されます。

Facebookには、セッションがまだ有効であることを確認するために、サーバー側スクリプトへのある種のajax呼び出しを定期的に呼び出すスクリプトがあります。有効でなくなると、ajax呼び出しによってポップアップが表示されます。

于 2012-10-02T08:17:07.367 に答える