2008-10-24 35 views
2

我試圖在ASP.net環境中實現匿名個性化。我知道ASP.NET 2.0提供了Profile。但是,我想盡可能避免訪問數據庫,因爲我正在使用的網站是一個相對較高的流量站點。使用ASP.NET + Cookie進行匿名個性化的有效方法

另一個明顯的解決方案是餅乾,但鑑於limitation of cookie,我想知道是否有人有信息存儲到Cookie進行任何有效的方法。有誰知道亞馬遜或雅虎如何交易。個性化?

最終,我們正在努力就可以提供不同的動態內容,我們的用戶羣在一個預先定義的運動一套商業規則輪廓。原因是要衡量我們網站的轉化率。同一個廣告系列可以在網站的所有不同頁面上使用。我需要將其設置爲cookie的原因是用戶能夠看到之前提供的相同內容,如果我們希望的話。所以這就是我現在在cookie中所擁有的。

campaign code:page id:result display 

而且您可以看到,如果存在大量廣告系列並且每個廣告系列都用於多個網頁,則會形成這種情況。

在此先感謝!

+0

你想要做多少個性化?一個簡單的主題變化或許多基於偏好的顯示/隱藏面板? – 2008-10-24 15:36:41

回答

0

我想創建一個數據庫記錄訪問者,只有ID存儲在cookie中,這樣就可以從數據庫中查找所有的個性化的細節,並保持餅乾大小到最低限度。

如果數據庫速度有問題,可以使用不同的數據庫和服務器來存儲個性化數據。

另外,您可以將個人數據存儲在文件系統中,並在訪問者返回匹配cookie ID時加載到會話中。

如果識別用戶和餅乾結算是一個問題,你冷的使用和ActiveX控件,但這需要在客戶端計算機,人們可以反對的安裝。

2

如果數據庫負載是一個問題,你可以當用戶在網站上開始他的會話獲取個性化,然後將其存儲在會話狀態。這樣,只有第一個頁面加載將調用數據庫。

您可以將用戶標識存儲在cookie中。

只記得分貝堅持會話時用戶更新自己的喜好,並在一段時間後刪除舊的數據庫記錄可能是一個好主意太多,如果許多匿名用戶將訪問您的網站。

1

如果您想保留更改(例如每個廣告系列視圖),則確實沒有任何方法可以寫入這些更改。如果使用正確,ASP.NET Membership在大量網站(每天> 1 mil)上也不錯。例如,您應該將調用包裝爲緩存對象中的成員資格提供程序,並經常刷新(短期到期)。另外,請確保在RoleProvider上設置cacheRefreshInterval。這將強制asp.net將角色緩存在cookie中,以減少數據庫活動。

另一種方法來看待這個是採取阿迪的建議,並將會員分爲單獨的數據庫。再次,ASP.NET成員資格提供程序的另一個強大功能 - 您可以設置不同的SQL連接字符串,並將其加載到不同的數據庫和/或服務器上。

成員資格提供者還有其他幾種可以真正提高績效的技巧。一些快速谷歌搜索出現了一些他們。