標籤:style ext color c width strong
最近在網上搜羅了 ASP.NET WEB 狀態管理方面的一些內容,終於把這些內容整合總結了一下。
1. 希望自己通過整理,能夠掌握一些,為自己投資。
2. 以便自己忘記,又要浪費時間搜羅。
3. 希望對園友有協助,這是一件很開心的事情
4. 希望大俠們看到問題及時幫忙指正,不想誤導自己,更不想誤導園友,在下不勝感激
不再磨嘰,馬上上菜
| 名稱 |
使用者 |
存留時間 |
資料 |
位置 |
優勢 |
劣勢 |
建議 |
| Application |
所有使用者 |
應用程式重新啟動 |
沒有限制,只被儲存一次 |
伺服器,可以儲存在資料庫 |
1. 實現簡單 2. 整個Application 領域(公用) |
1. 整個Application 領域的範圍導致沒有與私人空間 2. 伺服器掛掉、升級以及關閉可能會導致資料丟失或被破壞 3. 需要佔用伺服器記憶體 |
儲存多使用者使用但不經常改變且不考慮安全性的全域資訊 |
| Cookie |
目前使用者 |
一般很短,但是只要使用者不刪除,可以是數月甚至數年 |
少量且經常改變的資料 |
用戶端 |
1. 儲存時間可配置 2. 無需伺服器資源 3. 簡單 4. 資料持久化 |
1. 資料大小受限 2. 使用者可禁用 3. 潛在安全隱患 |
需要在用戶端且不需要考慮安全性的少量資料 |
| QueryString |
一個或一組使用者 |
為下一個請求 (可以跨多個請求重複使用) |
很小,簡單資料 |
用戶端 |
1. 無需伺服器資源 2. 被廣泛支援 3. 實現簡單 |
1. 潛在安全隱患 2. 能力有限(被URL長度限制) |
通過連結,從一個面發送到另一個頁面或者是相同頁面,且不需要考慮安全性的少量資料 |
| Session |
目前使用者 |
只要使用者是線上的,以及在逾時時間內(一般是20分鐘),支援自失效 |
沒有限制,但是應盡量小,因為每個使用者都有自己單獨session的儲存 |
伺服器 |
1. 實現簡單 2. 可以使用會話管理事件 3. 資料持久化 4. 可在多電腦、多個進程之間使用 5. 彌補Cookie受限 6. 可以自訂和擴充Session |
1. 效能問題 |
需要考慮安全性,儲存特定的單獨會話的短期資訊 |
| Cache |
所有使用者或者使用者子集 |
根據實際需要可長可短 |
可很大、也可以很小、也可以很複雜 |
用戶端/伺服器 |
1. 有ASP.NET管理 2. 當記憶體不足或者逾時,將自動清除 3. 可配置 4. 減輕Web Service或者資料庫的負擔 5. 提高效能 6. 可靠性 |
1. 同步不及時 2. 擴充性問題 3. 維護成本 |
使用者經常訪問但不經常更新的資料 |
| View State |
目前使用者 |
一個頁面 |
少量資訊,隨著頁面的回傳,資料將會在頁面來回傳 |
用戶端,以隱藏欄位的形式儲存 |
1. 無需伺服器資源 2. 實現簡單 3. 增強全性 |
1. 效能問題 2. 裝置限制 3. 潛在安全隱患 |
儲存少量需要回傳給自己的頁面資訊 |
| Control state |
目前使用者 |
一個頁面 |
少量資訊,往返於伺服器之間的控制使用的狀態資訊 |
用戶端,預設以隱藏欄位的形式儲存 |
1. 無需伺服器資源 2. 可靠 3. 通用 |
1. 特定程式依賴性 |
需要儲存少量資訊往返於伺服器之間的控制使用的狀態資訊 |
| Hidden Fields |
目前使用者 |
一個頁面 |
少量且經常被改變的資料 |
用戶端 |
1. 無需伺服器資源 2. 被廣泛支援 3. 實現簡單 |
1. 潛在安全隱患 2. 儲存資料簡單 3. 效能問題 4. 儲存限制 |
需要發送到另一個頁面或者回傳,且無需考慮安全性的少量頁面資訊 |
| Profile Properties |
目前使用者 |
設定檔更新 |
任何類型的資料 |
伺服器 |
1. 資料持久化 2. 可在多電腦、多個進程之間使用 3. 可擴充性 |
1. 效能問題 2. 額外的配置要求 3. 維護資料 |
使用者session到期後需要持久化的資訊,使用者下次訪問時需要恢複的資訊 |
| Database |
目前使用者 |
只要不被刪除 |
任何類型的資料 |
伺服器 |
1. 安全性 2. 資料存放區量大 3. 資料持久化 4. 穩定性和資料完整性 5. 可訪問性 6. 被廣泛支援 |
1. 複雜性 2. 效能問題 |
儲存大量的資訊,使用管理事務,或者整個應用程式生命週期都需要使用的資訊,再次訪問時需要使用的資訊。考慮資料採礦,考慮安全性。 |
再次希望,如果有問題能及時幫忙指正,有問題請留言,有協助就支援一下吧!