2012-01-21 96 views
2

有人告訴我,總是忽略編碼由於超載服務器上使用會議 ..它更昂貴或者Session變量或靜態模型ASp.net MVC

所以我用靜態模式類用於在多個請求之間保存值... !!!

那麼有沒有靜態模型是最好?

+0

靜態模型作爲 公共靜態MyClass類{ 公共靜態字符串myvalue的{獲得;設置;}? .... – John

+0

YA !!! @ John .. 靜態模型的類型爲Public – iChirag

回答

0

必須使用會話每用戶不同的值,並且是好,如果你有相同的價值觀在你的程序使用靜態 - 而且每asp.net池的所有用戶相同的。

有我的。 所有用戶的靜態值都是相同的。成本更低,因爲他們創建了一個,而不是使用內存分配,並且每次程序訪問時都進行分配,所以對於小值來說快一點,對於更多數據量要快得多。

靜態值不是線程安全的,如果您使用多線程,或者在沒有會話的頁面上調用它們,您需要注意這一點。

我希望這會有所幫助。

1

會話值是每個用戶。 靜態值是每個應用程序。

如果不重構代碼,它們是不可更改的,所以要小心使用它們。

就成本而言,您必須記住要評估內存成本和CPU成本。如果保存在會話變量中,它們都會隨着Web應用程序的併發用戶數量的增加而增加,並且此外還依賴於靜態或會話方法中的對象複雜性。

如果每個用戶會話中的對象都相同,則將它們移動到靜態變量(應用程序緩存)。 如果每個用戶的視角中的對象不同,請使用會話。

最好的解決方案很少是純粹的,但更經常混合。

0

另外,靜態值會在應用程序死亡時丟失,而會話值不一定會存在(有很多持久會話提供程序)。