使用者瀏覽購物網站時,所選的購物商品資訊應該要被存放在哪裡呢?這是一個暫時性的儲存的資料,通常我們會使用
儲存在客戶端的瀏覽器,優點是不需耗費伺服端的記憶體空間,缺點是會暴露資訊在客戶端中
儲存在伺服端的記憶體空間,優點是資料有隱秘性,缺點是當同時上線人數超過一定數量,有可能會讓伺服器的記憶體滿載
其中由於Cookie有安全性疑慮,所以我們往後會採用Session的儲存方式來實作購物車..
ASP.NET MVC Session有三種儲存模式,分別是
In-Memory : 儲存在運行的Web伺服器記憶體中,如果運行的Web伺服器掛點則Session會消失
State Server : 儲存在某一台伺服器中的記憶體,但此台伺服器會提供狀態服務讓很多不同的Web伺服器連接,Web伺服器掛點不會造成State Server儲存的Session消失
SQL Server : 儲存在某一台SQL Server,Web伺服器掛點不會造成SQL Server儲存的Session消失
根據使用的情境可以自行決定Session的儲存方式,我們決定以最簡單的In-Memory方式來完成,實際上如果要切換為2 or 3的模式,只需要改變Web.config設定檔,原始碼是幾乎不需要改動的.
在ASP.NET MVC 如何存取Session呢?例如將變數value儲存至Session的某個key值中:
Session["key"] = value;
是不是很簡單呢?
而取出Session也是一樣容易的,例如將Session的某個key值取出,並且設定給value:
var value = Session["key"];
以上例子中的value可以是實值型別(int ; string; ...) 或者是某個類別的物件,對於購物車來說,我們要儲存的資訊會比較多,例如所有購買的商品列表,總價,優惠等資訊.
明天我們開始介紹如何設計購物車類別囉