2008-10-13 102 views
1

這是關於Session用於存儲一些臨時數據的情況 - 一個示例是在多步註冊過程中輸入的信息。如何保持會話清潔?

如果一個網站有很多這樣的部分 - 它們希望利用會話作爲該部分內頁面的臨時數據存儲,那麼在數據不再需要時清理會話的好方法是什麼,考慮到用戶可以簡單地離開該部分,使得頁面本身不能用於清理。在我的情況下,主要驅動器是爲了減少網絡流量,因爲會話存儲在proc之外,但同樣的問題可以適用於內存綁定的應用程序和性能。 Session中的意外數據也很容易導致難以跟蹤錯誤。

回答

2

時間應該保持會話清潔。會話應該到期,並在這樣做nuke他們所有的數據。這是默認行爲。

我會同意在會話中存儲太多的數據對於服務器資源來說並不是一件好事,但正如你所知,它有時是一個必要的罪惡。如果您真的很困擾,請考慮將您的會話移至SQL Server。它會增加一些延遲,但你可以處理更多的用戶。

0

如果要存儲大量數據,可以有以下選擇:

  1. 緩存
  2. 數據庫

不建議以大量的數據存儲在會話。

0

爲什麼不把一切都存儲在數據庫中?這只是更乾淨。

爲什麼?那麼,大多數現代Web應用都會爲每個綜合瀏覽量打十幾次數據庫,因此一些額外的簡單查詢不會顯着影響性能。

話雖如此,在會話中存儲大量用戶生成的數據沒有任何問題,特別是在您使用基於文件的會話時。

爲什麼?真的,一個人可以輸入多少文字? 4000字節以下的任何內容都將佔用相同的空間量:一個操作系統頁面!

0

您可以設計多步註冊過程,而無需使用會話存儲或使用數據庫來存儲臨時數據。您可以設計一個帶有多個面板的.aspx頁面,一次可以顯示一個面板。當用戶完成最後一個面板時,您仍然可以訪問所有以前填寫的控件。