1

ログインしている現在のユーザーを確認しようとしているか、ロングポーリングを使用していません。

パフォーマンスと帯域幅の点でこれを達成するための最良の方法は何ですか?

ロングポーリングについて質問しているわけではありませんが、ユーザーがログインしているかどうかを確認する最良の方法です。

GETrequest を使用してログイン状態を確認しようとしました。

var logged = $.ajax( {url:url,'type':'get'} );

logged.done(function(response, textStatus, jqXHR){  // success  });

logged.fail(function((jqXHR, textStatus, errorThrown){  // sometimes it failed });

そしてPHPで

if( is_logged() ){ echo 1; }else{ echo 0; }

そのため、応答に応じてステータスを検出できます。これはうまくいきます。しかし、私は帯域幅の使用について懸念しており、 typeHEADになってしまったので、ヘッダーの内容のみを取得します。

だから私はphp部分を..に変更しました

if( !is_logged() ){
 header('HTTP/1.0 401 Unauthorized'); 
}

ざっと見た感じではアプローチは問題ないと思います。しかし、比較的私はPHPに不慣れで、このアプローチにはいくつかの問題があるかもしれないと感じています.

これはログインステータスを確認するための最良の方法ですか? またはこれを行うための最良の方法は何ですか?

ありがとう

4

1 に答える 1

1

あなたの GET リクエストは問題なく、アプローチに問題はありません。1/0 を返して具体的なものを節約したり、適切な応答の代わりにヘッダー/ステータスを返したりするという考えでは販売されていません。

代わりに、JSON 応答をエコーし​​ます。{ success: true, response: {logged_in: true}}

また、PHPスクリプトを変更して、401ヘッダーを表示せずに返すようにします{success: true, response: {logged_in: false}}

于 2013-06-06T12:14:08.573 に答える