2

ASP.net環境で匿名のパーソナライズを実現しようとしています。ASP.NET2.0がプロファイルを提供することを知っています。ただし、私が取り組んでいるサイトは比較的トラフィ​​ックの多いサイトであるため、データベースへのトラフィックはできるだけ避けたいと思います。

他の明白な解決策はクッキーですが、クッキーの制限を考えると、誰かが情報をクッキーに保存するための効率的な方法があるかどうか疑問に思いました。アマゾンやヤフーがアノンをどのように扱っているか知っている人はいますか?パーソナライズ?

最終的には、事前定義されたキャンペーンの一連のビジネスルールの概要に基づいて、さまざまな動的コンテンツをユーザーベースに提供しようとしています。その理由は、当サイトのコンバージョン率を測定するためです。同じキャンペーンをサイトのすべての異なるページで使用できます。これをCookieに設定する必要がある理由は、必要に応じて、ユーザーが以前に提供されたものと同じコンテンツを表示できるようにするためです。だから、これは私が今クッキーに持っているものです。

 campaign code:page id:result display

そして、キャンペーンが多く、各キャンペーンが多くのページで使用されている場合、これが蓄積されることがわかります。

前もって感謝します!

4

3 に答える 3

2

データベースの負荷が問題になる場合は、ユーザーが Web サイトでセッションを開始したときにパーソナライゼーションを取得し、それをセッション状態に保存できます。このようにして、最初のページの読み込みのみがデータベースへの呼び出しを行います。

ユーザー ID を Cookie に保存できます。

ユーザーが自分の設定を更新するときは、データベースにセッションを永続化することを忘れないでください。多くの匿名ユーザーが Web サイトを訪問する場合は、しばらくしてから古いデータベース レコードを削除することもお勧めします。

于 2008-10-27T09:22:00.660 に答える
1

各キャンペーンビューなどの変更を保持したい場合、それらの変更を書き込むためにアクセスする方法は実際にはありません。ASP.NETメンバーシップは、正しく使用された場合、大量のサイト(1日あたり100万を超える)で悪くありません。たとえば、メンバーシッププロバイダーへの呼び出しをキャッシュされたオブジェクトでラップし、頻繁に更新する必要があります(有効期限が短い)。また、RoleProviderでcacheRefreshIntervalを設定してください。これにより、asp.netはCookieにロールをキャッシュし、DBアクティビティを削減します。

これを確認する別の方法は、Adyのアドバイスを利用して、メンバーシップを別のDBに分離することです。繰り返しになりますが、ASP.NETメンバーシッププロバイダーのもう1つの優れた機能は、別のSQL接続文字列を設定し、それを別のDBやサーバーにロードすることです。

メンバーシッププロバイダーの周りには、パフォーマンスを実際に向上させることができる他のいくつかの手法があります。いくつかのクイックグーグル検索はそれらの数を表示します。

于 2009-03-24T21:52:16.747 に答える
0

訪問者のデータベース レコードを作成し、ID のみを Cookie に保存します。これにより、データベースからすべてのパーソナライズされた詳細を検索し、Cookie のサイズを最小限に抑えることができます。

データベースの速度が問題になる場合は、おそらく別のデータベースとサーバーを使用してパーソナライズを保存してください。

または、個人データをファイル システムに保存し、訪問者が Cookie ID と一致する値を返したときにセッションにロードすることもできます。

ユーザーの識別と Cookie の消去が問題になる場合は、コールド ユースと ActiveX コントロールを使用しますが、これにはクライアント コンピューターへのインストールが必要であり、人々は反対する可能性があります。

于 2008-10-27T09:16:16.537 に答える