1

私のアプリケーション(Asp.Net MVC)は、ユーザーインターフェイス(jQuery / js)との優れた相互作用を備えています。たとえば、さまざまな検索チャートを設定したり、画面上でガジェットを移動したりします。もちろん、各ユーザーのすべてのデータを保持したいと思います。そのため、データはDumaineの任意のページから利用可能になり、ユーザーは自分の設定を受け入れることになります。

ユーザーが何かを変更するたびにサーバーへの論理的な非同期アクセスとは思われず、多くのことが発生するため、すべてのデータをCookieに保持します。ユーザーがアプリケーションからログアウトするときに、Cookieをデータベースに保存します。

Qは、設定をデータベースに保存する方法です。クライアントからサーバーに保存します。記録したいインタラクションがたくさんあるからです。scanriosの例:ウィジェットを閉じる、ウィジェットを移動する、メニューのサイズを変更する、列を並べ替える..そのアクションを記録したいと思います。アクションごとにajaxセービングルーティンを発射すると、面倒になりすぎます。多分私は選択の余地がありません..多分私は特定の間隔の秒のすべてを保存して非同期を実行する必要があります。

問題は、Cookieが非常に大きくなることです。この巨大なクッキーが各サーバーリクエストに添付されていると思うと、私の態度が間違っていると感じます。

もう1つの問題のCookieにはサイズ制限があります。それはあなたのブラウザによって異なりますが、私は間違いなく国境に近づいています-私のクッキーは簡単に4kbになります

別の解決策はありますか?

4

2 に答える 2

3

コードを知らなくても、ユーザー設定をデータベースに保存することを検討しましたか。さまざまな設定の列を持つUserPreferenceテーブルが可能です。

[設定を保存]オプションがある場合は、AJAX / JSONを介して更新するか、ポストバックで更新することができます。

編集1:それについて考えた後、明示的な「設定を保存」ボタンを持つことは有益で実用的だと思います。

ページのどこかで、Cookieを生成するものを使用して編集し、保存というボタンを配置してから、jQueryクリックハンドラーを接続します。クリックすると、CSV文字列またはサーバーにポストバックするための設定を保存する別のメソッドを作成し、それを使用$.postしてコントローラーのアクションメソッドに送り返します。

そこに到達したら、それを何らかの方法でデータベースに保存し(正確にはどのように)、success属性を持つJSON配列を返し、設定の保存が成功したかどうかを示します。

ページの読み込み中に、データベースから設定を取得し、操作を実行します。

于 2010-05-04T06:23:39.413 に答える
1

script別の解決策は、ユーザー設定をセッションに保存し、それらの設定を各ページにJSONエンコードされた文字列として(マークアップの終わりに向かってタグで)書き込むサーバー側ロジック(アクションフィルターなど)を記述して、クライアントスクリプト。

于 2010-05-04T06:17:53.017 に答える