2

Javascript シングル ページ アプリケーションでの作業で、最近問題が発生しました。このプロジェクトの背後にある全体的なアイデアは、ページのリロードを回避することです。ユーザーが私のアプリケーションに来るとき、リロードを行う必要はありません。これは、jQuery と Backbone.js と PHP をサービスとして使用して行われます。

この静的な index.html ファイルがあり、ログイン コンテナーとアプリケーション コンテナーを非表示にします。次に、ユーザーがアプリケーションによって認識されない場合はログインコンテナーを表示し、認証がある場合はアプリケーションを表示します。

if auth:
  application.show()
elif not auth:
  login.show() // like Gmail or Facebook etc.: Information + login-form

ログインフォームと一般情報の両方で、認証されていないユーザーを表示したくありません。非常に重要なのは、Google などのロボットがサイトを見つけられることです。

これは2つの異なるファイルでのみ実行でき、リロードが必要ですか? site.com と login.site.com。私のログインは、今のところ非常に瞬時に行われるため、この解決策は私を苛立たせます。

4

2 に答える 2

0

認証に ajax 呼び出しを使用することで、目的を達成できます (ただし、これは推奨される方法ではなく、概説した 2 ページのソリューションが好まれます)。

できることは、リッチ クライアント UI にデータを提供するためだけに存在する非常に細いコントローラーを使用することです。ゲートウェイ コントローラー (アプリケーションのエントリ ポイントとして機能するモデルを持たない別のコントローラー) は、基本的なアプリケーション構造をクライアントにレンダリングするだけです (ユーザー固有のデータがないため、ユーザーがログインしているかどうかはわかりません。この時点で知っておく必要があります)。次に、クライアントは UserController に現在ログインしているユーザーの ID を照会します。ユーザーがログインしている場合、サーバーはユーザーに関連する情報を含む json 応答を返し、そうでない場合、サーバーはユーザーがログインしていないことを示す応答を返します。その後、取得できます。ログインフォームのパーシャルを作成し、ajax を介して再度送信します。ご覧のとおり、一度 UI を作成し、軽量の ajax 呼び出しでサーバーと通信することで、問題を簡単に解決できます。

于 2011-06-18T08:17:15.007 に答える
0

質問を完全に理解しているかどうかはわかりませんが、ユーザーが認証されているかどうかを確認したい場合は、ajax 呼び出しを試してください。「401 無許可」で失敗した場合、ユーザーはログインする必要があります...

于 2011-04-11T15:56:42.520 に答える