3

私のアプリケーションでは、ユーザーが初めて画面にアクセスしたときに、ある種のダイアログで新しい機能についてユーザーに促したいと考えています。その後の訪問では、このダイアログは表示されません。

明らかな解決策は、Cookie を使用するか、これをデータベースに保存することです。

しかし、私は次のことを懸念しています: - 時間の経過とともに、コード内のすべてのチェックによりコードが乱雑になります - データベース ソリューションでは、パフォーマンスの問題が発生する可能性があります。

また、ユーザーが Cookie をクリアした場合 (たとえば)、過去 2 年間のすべての新機能の更新を表示したくありません (1 つの画面に複数の新機能が表示される可能性があります)。

これを処理する愚かな/簡単な方法はありますか? twitter や facebook は、新機能を宣伝するときにどのようにこれを行うのでしょうか?

私の環境はMSSQL、問題があればASP MVCです。

4

5 に答える 5

2

両方を使用します-キャッシュ手法としてのCookie-最初にCookieを確認します。フラグが含まれていない場合は、DBに問い合わせてください。

また、ログイン時にそのCookieを初期化することもできます。ユーザーセッションごとに1つのDB呼び出し。

于 2012-06-01T17:54:46.187 に答える
1

個人的には、ユーザーレコードに対してデータベースフラグを使用します。

あなたが言うように、クッキーは破壊され、迷惑な重複リマインダーにつながる可能性があります。

正しくやっていれば、「厄介なコード」について心配する必要はないと思います。

于 2012-06-01T16:17:56.150 に答える
1

ユーザーログインがあるので、何らかのサーバー側セッションもあると思います。ユーザー設定をデータベースに保存し、ログイン時にセッションにキャッシュして、リクエストごとにデータベースにアクセスすることを回避できます。認証目的でセッションを信頼している限り、ユーザー設定についても確実に信頼できます。

于 2012-06-02T20:10:54.627 に答える
0

XMLで保存します。次に、シリアル化を使用して、設定をすばやく保存/ロードできます。XMLをSQLに保存します(MS SQLにはXMLをサポートする機能があります)

于 2012-06-01T16:17:57.250 に答える
0

コード内のチェックは、データを保存する場所とは無関係です。これは別の問題です。

あなたの質問の時点で、速度と使いやすさの理由から、データベースを使用することをお勧めします。

于 2012-06-01T16:18:49.053 に答える