2012-03-21 2 views
2

これはSOのためには最適でないかもしれないと私は考えています。Webアプリケーション経由でクライアントにユーザー環境設定を保存する標準的な方法

私のアイデアは、ユーザーがシステムにサインインした後、クッキーの形でクライアントにユーザー設定を保存することです。ユーザーが前記設定を変更した場合、クッキーを更新する。いくつかの設定はクライアントに関連しており、JavaScriptを介して調べる必要があるため、これを行う必要があります。

私は、サーバーに保存された設定も必要になることを理解しています。クッキーにそれらを引っ張ってもよいかどうかを知りたいのは良い考えです。私のアプリは主にajax駆動ですので、一度プルダウンして保存したいのですが。私は各サーバーの要求でそれらをプッシュしたくありません。

私はLocal Storageのようなことを避けて、ブラウザについて心配する必要はありません。 Cookieはすべてのブラウザで大きくサポートされているようです。

誰かが同意しているか、より良い方法がありますか?

+0

どのような種類の質問がSOに対して尋ねられるべきでないかに関して、[faq](http://stackoverflow.com/faq#dontask)を見直してください。 –

+4

@BrianDriscoll:彼はクッキーに設定を保存するのがよいかどうか尋ねています。それはまったく有効な質問です。 – Blender

答えて

1

多くのデータを保存する必要がない場合は、一般的にクッキーは良いアイデアです。店のものにクッキーを使用するときに留意するだけでいくつかのこと:

  • ユーザーが手動で設定を編集することができますので、あなたは追加のサーバー側のチェックなしでis_root=falseのようなものを持っていないことを確認してください。

  • これは、ユーザーがCookieを削除したときに迷惑になる可能性があります。また、Cookieにミラーリングされたサーバー側の設定記憶域に移動します。

他の可能性ではなく、静的なファイルで、インライン好みで、動的なJavaScriptを果たすことであろう - あなたはダイナミックHTMLを果たすと、あなたは同じJavaScriptを果たすことができたが、その後、あなたはキャッシングに注意する必要があります。

+0

ほとんどの設定は、モーダルダイアログが自動的に表示されるなどと関係があります。セキュリティ関連はまったくありません。しかし、これらのアクションはJavaScriptによってトリガされ、私はダイアログを表示するかどうかを決定するためにGETを行う必要はありません。 動的JavaScriptは興味深いアイデアです。ありがとう。 – Gregg

+0

jfriend00が提案したように、JavaScriptの一部を動的にする(いくつかの変数を設定する)ことができ、残りをパフォーマンスのために静的なファイルに残すことができます。 –

+0

私はこれが動的なjavascriptオプションの最初の言及だったので、私はこの答えを正しいと受け入れています。これは私が行っていると思います。もし私ができるなら、私は担当者を分けただろう。 – Gregg

0

ユーザーは、別のコンピュータでサインインするたびに個人設定を再作成する必要がないため、サーバーに設定を保存する必要があります。

サーバ側に保存してください。

+0

私は自分の質問をサーバーに保存しなければならないという事実に更新しました。 – Gregg

5

EDIT今、あなたは我々が最初に答えを書いたときから質問を変更したこと:

サーバー上の嗜好データを格納している場合は、間のローカルユーザーのコンピュータに環境設定データを保持する理由はありません訪問このように、すべてのクライアント/サーバー往復のサイズが増え、クライアントコンピュータ上のストレージを必然的に使用するため、データをクッキーに入れる理由はありません。

代わりに、私はあなたが単に好みは、このようなページのJavaScriptでオブジェクトを置くことを示唆している:

var userPref = {theme: "fun", permitContact: false, lastDisplay: "threaded"}; 

その後、あなたはこのようなコードで任意のページからjavascriptを介して、プリファレンス値へのアクセスを得ることができます。

if (userPref.lastDisplay == "threaded") { 
    // do something 
} 

質問が編集された前の旧答え:

クライアントが使用するさまざまなブラウザからクライアントの環境設定を使用する場合は、環境設定をサーバーに保存する必要があります(強くお勧めします)。あなたは、各ページに少量のjavascriptを含めるだけで、好みのオブジェクトのプロパティをユーザーの好みの値に設定することで、Webページでいつでも利用できるようにすることができます。そして、ユーザーが設定を変更/更新し、新しく変更された環境設定をサーバーに再び保存できる環境設定ページを持つことができます。

Cookieは一時的な状態のため、いつでも消去される可能性があり、特定のコンピュータでのみ動作します。さらに、Cookieを使用する場合、userAがログアウトしてuserBが同じコンピュータにログインすると、userBの設定が間違っています。

+0

私は自分の質問をサーバーに保存しなければならないという事実に更新しました。 – Gregg

+0

@Gregg - 新しい質問に基づいて回答をやり直しました。 – jfriend00

+0

@maaronsは動的なJavaScriptがその情報を取り込むことを意味していると思います。これは良いアプローチです。そして私は私の質問を変えたとは思わない。あなたは私が物事をサーバーに保管したくないと仮定しました。私はちょうど十分明確ではなかった。 – Gregg

関連する問題