2010-05-21 28 views

回答

4

取決於你的觀點和使用情況,但一般來說,會話​​是更便宜。

對於客戶端來說,會話​​幾乎是免費的。它只需要處理跟蹤會話cookie(如果您配置了無cookie會話,則通過url訪問會話ID)。 Viewstate將所有數據推送到客戶端,在頁面源文本中。

對於服務器,session和viewstate都有成本。視圖狀態必須被序列化和反序列化,並通過線路移動。會話存儲在內存中(除非另行配置),但不必操縱。所以會話在更長的時間內在內存中使用更多的存儲空間,viewstate創建臨時內存使用和更高的CPU命中。所以它取決於多少數據,客戶端與服務器通信的頻率,以及您想要保存哪些資源......儘管一般情況下,對於批量數據,會話在幾乎所有實際情況下都會勝出。

2

如果使用out-of-proc,ViewState將花費帶寬並使頁面變得更加麻煩,而Session將花費內存在服務器或其他服務器上。