婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET筆記之 viewstate與cache的使用

ASP.NET筆記之 viewstate與cache的使用

熱門標簽:內蒙古智能電銷機器人哪家強 百度地圖標注點擊事件 地圖標注位置多的錢 濟源人工智能電話機器人價格 泰州手機外呼系統軟件 山東防封電銷卡辦理套餐 杭州智能電話機器人 怎樣在地圖標注消火栓圖形 廈門四川外呼系統

1、

(1、默認情況下ASP.Net是啟用ViewState的,這樣在頁面中會生成冗長的隱藏字段,ViewState對于需要PostBack處理的頁面才可能有用,對于新聞展示頁面不需要交互完全沒必要用ViewState。

(2、禁用ViewState的方式:
• 頁面整體禁用ViewState:在頂部Page中EnableViewState="False"
• 指定控件禁用ViewState,在控件上EnableViewState="False"

(3、頁面禁用ViewState以后并沒有完全去掉ViewState,只要ViewState不是很大就可以了。如果要求一點兒ViewState都不能有,那么則頁面中不能有runat=server的form,如果頁面中沒有表單元素,把form完全去掉就可以。如果Button等服務端控件沒有放到runat=server的form中,那么則是不可用的。

 

2、cache

(1、如果每次進入頁面的時候都查詢數據庫生成頁面內容的話,如果訪問量非常大,則網站性能會非常差。而如果只有第一次訪問的時候才查詢數據庫生成頁面內容,以后都直接輸出內容,則能提高系統性能。這樣無論有多少人訪問都只訪問一次數據庫,數據庫壓力不變。

      緩存是一種用空間換取時間的技術,存在于計算機中很多地方,用來將一些慢速設備中的常用數據保存在快速設備中,取數據的時候直接從快速設備中取。比如CPU二級緩存、windows文件讀取緩存。

     緩存存在失效的問題:為了保證從緩存中讀取數據和慢速數據中數據一致,則需要在慢速數據中對應的數據發生變化的時候,清除緩存中相應的數據。
緩存是改進網站性能的第一個手段,就像索引是改進數據庫性能的第一個手段一樣。
ASP.net緩存主要分為:頁面緩存、數據源緩存、數據緩存這三種主要類型。

(2、頁面緩存

       給頁面添加下面的標簽就可以啟用頁面緩存,

復制代碼 代碼如下:

%@ OutputCache Duration="20"  VaryByParam="none"%>

這樣整個頁面的內容都會被緩存,頁面中的ASP.Net代碼、數據源在緩存期間都不會被運行,而是直接輸出緩存的頁面內容。 Duration表示緩存時間,以秒為單位,超過這個時間則緩存失效,再次生成以后會再緩存20秒,以此類推。在Page_Load處設置斷點、修改數據庫數據測試。
      緩存是針對所有這個頁面的訪問者。這樣1個訪問者和1萬個訪問者、一次訪問和100萬次訪問對數據庫的壓力是一樣的。

      ***對于看新聞頁面來講,如果如上設置的話,則會緩存在第一個看到的新聞,因為?id=2、?id=3只是頁面的不同參數而已,為了能讓不同的新聞各自緩存,因此可以設置VaryByParam="id"表示對于不同的id參數進行單獨緩存如果有多個確定緩存的參數,則將參數名用分號隔開即可,比如VaryByParam="id;number"。
      如果想讓任何不同的查詢字符串都創建不同的緩存,則設置VaryByParam="*",一般情況下設置“*”就足夠。
      在WebUserControl中也可以像頁面緩存一樣設置控件的緩存。

(3、 數據源緩存
      設定ObjectDataSource的CacheDuration(緩存時間:秒),EnableCaching=true。這樣每隔CacheDuration指定的時間段才調用SelectMethod指定的方法來執行數據庫查詢,其他時候都是直接返回緩存的數據。

      緩存固定的時間適用于首頁、文章列表等訪問頻繁的頁面,對于看貼頁面則不適合,假設有100萬個帖子,如果每個帖子都是固定緩存1小時的話,假設一小時之內有10萬個帖子被看了,那么就要緩存十萬個帖子,非常占用內存,因為“百年一看”的“墳帖”偶然被訪問一次也緩存一個小時,占用內存。這時候可以采用“滑動窗口(sliding)”策略,比如帖子緩存10分鐘,如果10分鐘之內又訪問了,則緩存的失效時間修改為從被訪問這一刻起的10分鐘之后,以此類推。這樣經常訪問的帖子就可以“長期緩存”,而不經常訪問的帖子也不會因為偶然訪問而長期占用緩存。設置方法,數據源:CacheExpirationPolicy="Sliding"。面試可聊。todo:貌似滑動有問題。不是問題,Sliding只是策略,服務器會參考。

(4、 緩存其他
     頁面緩存、數據源緩存等內部都是使用HttpRuntime.Cache來實現緩存的,在一些頁面緩存、數據源緩存完成不了的特殊的緩存要求中,可以直接調用HttpRuntime.Cache進行緩存。

     (*)ASP.Net緩存默認是保存在內存中的,還可以配置保存到數據庫中。大型網站還會配合使用Memcached等技術。
清除緩存。在緩存還未失效的時候可能需要立即清空緩存,讓數據庫的修改立即反映到界面中。ASP.Net沒有提供現成的方法,可以使用Hack級別的代碼。

3、錯誤頁面

(1、當頁面發生錯誤的時候,ASP.Net會將錯誤信息展示出來,這樣一來不好看,二來會泄露網站的內部實現信息,給網站帶來安全隱患,因此需要定制錯誤頁,發生錯誤時顯示開發人員定制的頁面。404頁面放點廣告也是好的嘛。
配置web.config,配置system.web內的customErrors區域:

復制代碼 代碼如下:

customErrors mode="On" defaultRedirect="~MyErrorPage.aspx">
 error statusCode="403" redirect="~/NoAccess.htm" />
 error statusCode="404" redirect="~/FileNotFound.htm" />
 /customErrors>

**mode三個可選值:On:總是顯示定制錯誤頁面;Off:不顯示定制錯誤界面,直接顯示調用堆棧等異常信息;

**remoteonly:對于本機的訪問顯示調用堆棧等異常信息,對于外部用戶的顯示定制錯誤頁面

一般設置為RemoteOnly,這樣發生錯誤的話,管理員可以在服務器的瀏覽器中看詳細錯誤信息,普通用戶看不到。

學習演示的時候mode設置為On,否則看不到定制頁。可以在定義錯誤頁中判斷Request.UserHostAddress來設置某些ip看到異常信息,可以讀取Session如果是管理員則可以看異常信息。

(2、error子元素設定對于不同狀態碼使用不同的錯誤頁,很多網站把404做一個特殊的錯誤頁。沒有單獨設置的狀態碼錯誤則顯示defaultRedirect中指定的頁面。
錯誤頁即可以使用htm頁面,也可以使用aspx頁面。在aspx頁面中可以用HttpContext.Current.Server.GetLastError()拿到異常對象。一般不要把異常信息顯示給用戶,而是使用后面講的Log4Net等將異常記錄到系統日志。

*****如果要在錯誤頁面中拿到異常對象,比如customErrors中設置redirectMode="ResponseRewrite",因為默認是客戶端重定向(redirectMode="ResponseRedirect"),在錯誤頁面中就拿不到異常對象了。*****

復制代碼 代碼如下:

customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~MyErrorPage.aspx">
error statusCode="403" redirect="~/NoAccess.htm" />
error statusCode="404" redirect="~/FileNotFound.htm" />
/customErrors>

您可能感興趣的文章:
  • asp.net 生成靜態時的過濾viewstate的實現方法
  • asp.net 去除viewstate
  • asp.net 禁用viewstate在web.config里
  • asp.net 處理原文件中過長的viewstate代碼
  • asp.net viewstate 回發機制
  • asp.net生成靜態后冗余代碼,去掉viewstate生成的代碼
  • Asp.net中static變量和viewstate的使用方法(謹慎)
  • ASP.NET筆記之頁面跳轉、調試、form表單、viewstate、cookie的使用說明
  • asp.net中ViewState的用法詳解

標簽:朔州 朝陽 周口 洛陽 百色 臺州 喀什 新鄉

巨人網絡通訊聲明:本文標題《ASP.NET筆記之 viewstate與cache的使用》,本文關鍵詞  ASP.NET,筆記,之,viewstate,與,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET筆記之 viewstate與cache的使用》相關的同類信息!
  • 本頁收集關于ASP.NET筆記之 viewstate與cache的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 柞水县| 东丰县| 晋江市| 常州市| 来宾市| 乌拉特前旗| 云梦县| 杭锦旗| 仁布县| 江华| 沁源县| 江安县| 汉源县| 临沭县| 建水县| 大同市| 视频| 洱源县| 廉江市| 丰县| 胶南市| 合川市| 龙江县| 沛县| 娄底市| 大丰市| 竹溪县| 台安县| 马山县| 沙洋县| 云龙县| 岢岚县| 芜湖市| 清镇市| 马公市| 奉节县| 吉水县| 五大连池市| 林西县| 阿城市| 嘉禾县|