在一個aspx頁面上,我必須加載一個帶有來自數據庫的值的DropDown。在頁面生命週期中,數據保持價值的最正確的地方是什麼?ASP.NET緩存對象的使用
Cahce對象? 會話? ViewState?
更多細節:
- 這些數據都存儲在一個DataTable
- ,行可還200
- 的數據是用來filted GridView的項目
在一個aspx頁面上,我必須加載一個帶有來自數據庫的值的DropDown。在頁面生命週期中,數據保持價值的最正確的地方是什麼?ASP.NET緩存對象的使用
Cahce對象? 會話? ViewState?
更多細節:
如果數據的獲取成本很高並且對所有用戶都是相同的,則進行緩存。
會話如果數據是昂貴的獲得,如果數據是便宜的獲得取決於用戶
沒有。
如果數據位於管理頁面或流量無關緊要的地方(內部網站,很少訪問的頁面),則爲ViewState。 200行可能有點太多了。
如果所有的字符串數據很少變化,緩存是個好主意。如果它定期更改,那麼我不會(因爲你會經常清理和重新加載緩存,這是一種浪費)。
按會話或視圖狀態保存它並不會給你帶來太多的性能提升,因爲這些都是在用戶請求中提供的。我討厭viewstate,但如果你不能像上面提到的那樣緩存,viewstate是最合適的地方。
數據可以在每個頁面上改變並且對所有用戶都不共用。你爲什麼討厭viestate? – AngeloBad
數據有效期有多長?頁面的生命週期?會話的生命週期?應用程序的一生?回答這個問題,你有你的答案:) –
頁面壽命 – AngeloBad
你什麼時候加載的項目? ASP.NET將已經在處理數據的持久性(使用ViewState),除非你將它們注入到客戶端? – Widor