版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第13章章Web應(yīng)用性能調(diào)優(yōu)和跟應(yīng)用性能調(diào)優(yōu)和跟蹤檢測蹤檢測內(nèi)容內(nèi)容如何開發(fā)高性能的如何開發(fā)高性能的Web應(yīng)用應(yīng)用跟蹤檢測跟蹤檢測緩存技術(shù)緩存技術(shù)在在Web應(yīng)用中的異步處理應(yīng)用中的異步處理Health Monitor如何開發(fā)高性能的如何開發(fā)高性能的Web應(yīng)用應(yīng)用頁面和服務(wù)器控件處理頁面和服務(wù)器控件處理 狀態(tài)管理狀態(tài)管理數(shù)據(jù)訪問數(shù)據(jù)訪問Web 應(yīng)用程序應(yīng)用程序編碼實(shí)踐編碼實(shí)踐 使用緩存使用緩存頁面和服務(wù)器控件處理頁面和服務(wù)器控件處理避免到服務(wù)器的不必要的往返行程(客戶端異步回避免到服務(wù)器的不必要的往返行程(客戶端異步回調(diào))調(diào))使用使用IsPostBack 只在必要時(shí)保存服務(wù)器控件視圖狀態(tài)只在必
2、要時(shí)保存服務(wù)器控件視圖狀態(tài) 盡量使用緩沖盡量使用緩沖使用使用 Transfer 狀態(tài)管理狀態(tài)管理當(dāng)不使用會話狀態(tài)時(shí)禁用它當(dāng)不使用會話狀態(tài)時(shí)禁用它選擇合適的會話狀態(tài)提供程序選擇合適的會話狀態(tài)提供程序 u進(jìn)程內(nèi)會話狀態(tài)u作為 Windows 服務(wù)的進(jìn)程外會話狀態(tài) uSQL Server 數(shù)據(jù)庫中的進(jìn)程外會話狀態(tài) 數(shù)據(jù)訪問數(shù)據(jù)訪問SQL Server數(shù)據(jù)庫中,推薦使用存儲過程訪問數(shù)據(jù)數(shù)據(jù)庫中,推薦使用存儲過程訪問數(shù)據(jù)合理選擇數(shù)據(jù)訪問對象合理選擇數(shù)據(jù)訪問對象uSqlDataReader:只讀訪問數(shù)據(jù)uDataSet:提供更多類型的數(shù)據(jù)訪問操作Web 應(yīng)用程序應(yīng)用程序預(yù)編譯預(yù)編譯Web 應(yīng)用應(yīng)用IIS的
3、回收進(jìn)程的回收進(jìn)程調(diào)整輔助進(jìn)程的線程數(shù)調(diào)整輔助進(jìn)程的線程數(shù) 啟用網(wǎng)絡(luò)園藝啟用網(wǎng)絡(luò)園藝 禁用調(diào)試模式禁用調(diào)試模式 優(yōu)化配置文件優(yōu)化配置文件 編碼實(shí)踐編碼實(shí)踐盡量不要依賴代碼中的異常盡量不要依賴代碼中的異常 適當(dāng)?shù)厥褂美厥掌骱妥詣?dòng)內(nèi)存管理適當(dāng)?shù)厥褂美厥掌骱妥詣?dòng)內(nèi)存管理 在托管代碼中重寫調(diào)用密集型的在托管代碼中重寫調(diào)用密集型的 COM 組件組件 避免單線程單元避免單線程單元 (STA) COM 組件組件 使用緩存使用緩存應(yīng)用程序緩存應(yīng)用程序緩存頁輸出緩存頁輸出緩存跟蹤檢測跟蹤檢測跟蹤概述跟蹤概述頁面級跟蹤頁面級跟蹤演示和練習(xí):查看頁面級跟蹤信息演示和練習(xí):查看頁面級跟蹤信息應(yīng)用程序級跟蹤應(yīng)用
4、程序級跟蹤演示和練習(xí):使用跟蹤查看器查看跟蹤信息演示和練習(xí):使用跟蹤查看器查看跟蹤信息ASP.NET跟蹤與跟蹤與System.Diagnostics 跟蹤的集成跟蹤的集成演示和練習(xí):演示和練習(xí):ASP.NET跟蹤與跟蹤與System.Diagnostics 跟跟蹤的集成蹤的集成跟蹤概述跟蹤概述為什么要使用跟蹤為什么要使用跟蹤跟蹤輸出信息跟蹤輸出信息輸出信息類別輸出信息類別說說 明明請求詳細(xì)信息顯示關(guān)于當(dāng)前請求和響應(yīng)的常規(guī)信息跟蹤信息顯示頁級事件流。如果創(chuàng)建了自定義跟蹤消息,這些消息也將顯示在“跟蹤信息”部分。這部分通常是我們分析代碼執(zhí)行邏輯的重點(diǎn),可以從中查看頁面生命周期中各事件的執(zhí)行情況(如
5、:執(zhí)行時(shí)間以及在事件中輸出的自定義輸出消息)等,從而判斷出代碼執(zhí)行效率等情況控件樹顯示關(guān)于在頁中創(chuàng)建的 ASP.NET 服務(wù)器控件的信息會話狀態(tài)顯示關(guān)于存儲在會話狀態(tài)中的值(如果有的話)的信息應(yīng)用程序狀態(tài)顯示關(guān)于存儲在應(yīng)用程序狀態(tài)中的值(如果有的話)的信息跟蹤概述(續(xù))跟蹤概述(續(xù))Cookie 集合顯示關(guān)于針對每個(gè)請求和響應(yīng)在瀏覽器和服務(wù)器之間傳遞的 Cookie 的信息。該部分既顯示持久性 Cookie,也顯示會話 Cookie標(biāo)頭集合顯示關(guān)于請求和響應(yīng)消息的標(biāo)頭名稱/值對(提供關(guān)于消息體或所請求的資源的信息)的信息。標(biāo)頭信息用來控制請求消息的處理方式和響應(yīng)消息的創(chuàng)建方式窗體集合顯示名稱/
6、值對,該名稱值/對顯示在 POST(回發(fā))期間的請求中提交的窗體元素值(控件值)Querystring 集合顯示在 URL 中傳遞的值。在 URL 中,查詢字符串信息通過問號 (?) 與路徑信息分隔開;多個(gè)查詢字符串元素用 & 符分隔開。查詢字符串名稱/值對通過等號 (=) 分隔開服務(wù)器變量顯示服務(wù)器相關(guān)的環(huán)境變量的集合和請求標(biāo)頭信息。HttpRequest 對象的 ServerVariables 屬性返回服務(wù)器變量的 NameValueCollection跟蹤輸出信息跟蹤輸出信息頁面級跟蹤:啟用與排序頁面級跟蹤:啟用與排序在頁面文件(在頁面文件(.aspx)的)的Page指令中設(shè)置指
7、令中設(shè)置Trace屬性屬性為為true,啟用頁面級跟蹤,啟用頁面級跟蹤設(shè)置設(shè)置TraceMode屬性指定跟蹤消息出現(xiàn)的順序?qū)傩灾付ǜ櫹⒊霈F(xiàn)的順序SortByTime(默認(rèn))SortByCategory 頁面級跟蹤:自定義輸出頁面級跟蹤:自定義輸出(編碼編碼)啟用頁面(啟用頁面(default.aspx)的頁面級跟蹤,并在頁面)的頁面級跟蹤,并在頁面的默認(rèn)事件(的默認(rèn)事件(Page_Load)中自定義輸出消息)中自定義輸出消息 protected void Page_Load(object sender, EventArgs e) Trace.Write(ASPNET_TRACE, Page
8、_Load .); 頁面級跟蹤:自定義輸出頁面級跟蹤:自定義輸出(顯示顯示)演示和練習(xí):查看頁面級跟蹤信息演示和練習(xí):查看頁面級跟蹤信息多媒體演示多媒體演示應(yīng)用程序級跟蹤應(yīng)用程序級跟蹤在在Web.config文件中配置應(yīng)用程序級跟蹤,通過對文件中配置應(yīng)用程序級跟蹤,通過對節(jié)點(diǎn)進(jìn)行設(shè)置,即可啟用或禁用應(yīng)用程序級節(jié)點(diǎn)進(jìn)行設(shè)置,即可啟用或禁用應(yīng)用程序級跟蹤跟蹤Enabled、pageOutput、RequestLimit、traceMode、localOnly、mostRecent 演示和練習(xí):使用跟蹤查看器查看跟蹤信息演示和練習(xí):使用跟蹤查看器查看跟蹤信息多媒體演示多媒體演示ASP.NET跟蹤與跟
9、蹤與System.Diagnostics 跟蹤的集成跟蹤的集成ASP.NET跟蹤與跟蹤與System.Diagnostics 跟蹤的集成的概跟蹤的集成的概述述要讓業(yè)務(wù)類中通過調(diào)用要讓業(yè)務(wù)類中通過調(diào)用System.Diagnostics.Trace類輸類輸出的跟蹤輸出信息隨頁面跟蹤輸出一起呈現(xiàn),則需出的跟蹤輸出信息隨頁面跟蹤輸出一起呈現(xiàn),則需要完成以下任務(wù):要完成以下任務(wù):u添加WebPageTraceListener 對象u添加編譯開關(guān)TRACE進(jìn)行編譯應(yīng)用ASP.NET跟蹤與跟蹤與System.Diagnostics 跟蹤的集成跟蹤的集成在在Web.Config文件中添加文件中添加WebPa
10、geTraceListener 對象對象或者,在或者,在Global.asax 文件中添加文件中添加WebPageTraceListener 對象對象 void Application_Start(Object sender, EventArgs e) WebPageTraceListener gbTraceListener = new WebPageTraceListener(); System.Diagnostics.Trace.Listeners.Add(gbTraceListener);ASP.NET跟蹤與跟蹤與System.Diagnostics 跟蹤的集成跟蹤的集成添加編譯開關(guān)添加
11、編譯開關(guān)TRACE進(jìn)行編譯應(yīng)用進(jìn)行編譯應(yīng)用 演示和練習(xí):演示和練習(xí):ASP.NET跟蹤與跟蹤與System.Diagnostics 跟蹤的集成跟蹤的集成多媒體演示多媒體演示緩存技術(shù)緩存技術(shù)緩存概述緩存概述應(yīng)用程序緩存應(yīng)用程序緩存頁輸出緩存頁輸出緩存緩存概述緩存概述為什么使用緩存為什么使用緩存u 應(yīng)用程序可以將那些頻繁訪問的數(shù)據(jù),以及那些需要大量處理時(shí)間來創(chuàng)建的數(shù)據(jù)存儲在內(nèi)存中,從而提高性能緩存機(jī)制分類介紹緩存機(jī)制分類介紹u應(yīng)用程序緩存u頁輸出緩存應(yīng)用程序緩存應(yīng)用程序緩存應(yīng)用程序緩存的機(jī)制應(yīng)用程序緩存的機(jī)制如何將項(xiàng)添加到緩存中如何將項(xiàng)添加到緩存中演示和練習(xí):向緩存中添加項(xiàng)演示和練習(xí):向緩存中添加
12、項(xiàng)讀取緩存項(xiàng)讀取緩存項(xiàng)從緩存中刪除項(xiàng)從緩存中刪除項(xiàng)從緩存中刪除項(xiàng)時(shí)通知應(yīng)用程序從緩存中刪除項(xiàng)時(shí)通知應(yīng)用程序演示和練習(xí):從緩存中刪除項(xiàng)時(shí)通知應(yīng)用程序演示和練習(xí):從緩存中刪除項(xiàng)時(shí)通知應(yīng)用程序應(yīng)用程序緩存的機(jī)制應(yīng)用程序緩存的機(jī)制應(yīng)用程序緩存是由應(yīng)用程序緩存是由 System.Web.Caching.Cache 類實(shí)類實(shí)現(xiàn)的,緩存實(shí)例(現(xiàn)的,緩存實(shí)例(Cache對象)是每個(gè)應(yīng)用程序?qū)ο螅┦敲總€(gè)應(yīng)用程序?qū)S玫?,并且每個(gè)應(yīng)用只有一個(gè),通過用的,并且每個(gè)應(yīng)用只有一個(gè),通過Page類或類或UserControl類的類的Cache屬性公開屬性公開緩存生存期依賴于應(yīng)用程序的生存期,當(dāng)重新啟動(dòng)緩存生存期依賴于應(yīng)用
13、程序的生存期,當(dāng)重新啟動(dòng)應(yīng)用程序后,將重新創(chuàng)建應(yīng)用程序后,將重新創(chuàng)建 Cache 對象,也就是說緩對象,也就是說緩存數(shù)據(jù)將被清空存數(shù)據(jù)將被清空如何將項(xiàng)添加到緩存中如何將項(xiàng)添加到緩存中添加緩存項(xiàng)添加緩存項(xiàng)設(shè)置緩存依賴項(xiàng)設(shè)置緩存依賴項(xiàng)設(shè)置緩存過期策略設(shè)置緩存過期策略設(shè)置緩存優(yōu)先級設(shè)置緩存優(yōu)先級添加緩存項(xiàng)添加緩存項(xiàng)通過鍵和值直接設(shè)置項(xiàng)通過鍵和值直接設(shè)置項(xiàng)使用使用 Insert 方法將項(xiàng)添加到緩存中方法將項(xiàng)添加到緩存中 Cache“ProductCategories” = dsCategories; / dsCategories是產(chǎn)品分類信息是產(chǎn)品分類信息Cache.Insert(ProductCat
14、egories, dsCategories); / dsCategories是產(chǎn)品分類信息是產(chǎn)品分類信息設(shè)置緩存依賴項(xiàng)設(shè)置緩存依賴項(xiàng)為什么要設(shè)置依賴項(xiàng)為什么要設(shè)置依賴項(xiàng)依賴項(xiàng)分類依賴項(xiàng)分類u鍵依賴項(xiàng)u文件依賴項(xiàng)uSQL 依賴項(xiàng)u聚合依賴項(xiàng)u自定義依賴項(xiàng)設(shè)置緩存依賴項(xiàng)設(shè)置緩存依賴項(xiàng)添加緩存項(xiàng)的鍵依賴項(xiàng)添加緩存項(xiàng)的鍵依賴項(xiàng)Cache.Insert(CacheItem2, Cache Item2, new System.Web.Caching.CacheDependency(null, new string CacheItem1 );設(shè)置緩存依賴項(xiàng)設(shè)置緩存依賴項(xiàng)添加緩存項(xiàng)的文件依賴項(xiàng)添加緩存項(xiàng)的文件
15、依賴項(xiàng) Cache.Insert(FinanceData, Cached Item 4, new System.Web.Caching.CacheDependency(Server.MapPath(XMLFile.xml);設(shè)置緩存依賴項(xiàng)設(shè)置緩存依賴項(xiàng)添加緩存項(xiàng)的添加緩存項(xiàng)的SQL 依賴項(xiàng)依賴項(xiàng)使用使用SqlCacheDependency 對象來創(chuàng)建依賴于數(shù)據(jù)庫對象來創(chuàng)建依賴于數(shù)據(jù)庫表中的記錄,添加步驟如下:表中的記錄,添加步驟如下:在Web.config文件的caching節(jié)點(diǎn)定義緩存使用的數(shù)據(jù)庫名稱 使用代碼依賴于該連接對應(yīng)數(shù)據(jù)庫的某個(gè)表的緩存項(xiàng) Cache.Insert(cacheite
16、m1, Cache Item 1, new SqlCacheDependency(AdvWorks, Product);設(shè)置緩存依賴項(xiàng)設(shè)置緩存依賴項(xiàng)添加緩存項(xiàng)的聚合依賴項(xiàng)添加緩存項(xiàng)的聚合依賴項(xiàng)u用System.Web.Caching.AggregateCacheDependency類添加多個(gè)依賴項(xiàng) System.Web.Caching.CacheDependency dep1 = new System.Web.Caching.CacheDependency(Server.MapPath(XMLFile.xml);CacheCacheItem1 = Cache Item 1string keyD
17、ependencies2 = CacheItem1 ;System.Web.Caching.CacheDependency dep2 = new System.Web.Caching.CacheDependency(null, keyDependencies2);System.Web.Caching.AggregateCacheDependency aggDep = new System.Web.Caching.AggregateCacheDependency();aggDep.Add(dep1);aggDep.Add(dep2);Cache.Insert(CacheItem2, Cached
18、 Item 2, aggDep);設(shè)置緩存過期策略設(shè)置緩存過期策略通過通過Cache 類自定義如何緩存項(xiàng)以及將它們緩存類自定義如何緩存項(xiàng)以及將它們緩存多長時(shí)間。過期類別有:多長時(shí)間。過期類別有:u 絕對過期u 可調(diào)性過期Cache.Insert(CacheItem1, Cached Item 1, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 30, 0);Cache.Insert(CacheItem1, Cache Item1, null, DateTime.Now.AddMinutes(30), S
19、ystem.Web.Caching.Cache.NoSlidingExpiration);設(shè)置緩存的優(yōu)先級設(shè)置緩存的優(yōu)先級用 Add 或 Insert 方法添加項(xiàng)時(shí)指定一個(gè) CacheItemPriority 枚舉值Cache.Insert(CacheItem1, Cached Item 1, null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.High, null);演示和練
20、習(xí):向緩存中添加項(xiàng)演示和練習(xí):向緩存中添加項(xiàng)多媒體演示多媒體演示讀取緩存項(xiàng)讀取緩存項(xiàng)通過鍵來檢索被緩存的項(xiàng)通過鍵來檢索被緩存的項(xiàng) if(CacheProductCategories != null) DataSet dsCategories = (DataSet)CacheProductCategories; 從緩存中刪除項(xiàng)從緩存中刪除項(xiàng)在以下情況下,緩存自動(dòng)刪除在以下情況下,緩存自動(dòng)刪除u緩存已滿u該項(xiàng)已過期u依賴項(xiàng)發(fā)生更改通過代碼方式刪除通過代碼方式刪除u調(diào)用Cache類的Remove()方法來刪除緩存項(xiàng) Cache.Remove(ProductCategories ); 從緩存中刪除項(xiàng)時(shí)
21、通知應(yīng)用程序從緩存中刪除項(xiàng)時(shí)通知應(yīng)用程序CacheItemRemovedCallback 委托委托u該委托定義編寫事件處理程序時(shí)使用的簽名,當(dāng)對從緩存中刪除項(xiàng)進(jìn)行響應(yīng)時(shí)會調(diào)用此事件處理程序CacheItemRemovedReason 枚舉枚舉u用于指定刪除緩存項(xiàng)的原因 演示和練習(xí):從緩存中移除項(xiàng)時(shí)通知應(yīng)用程序演示和練習(xí):從緩存中移除項(xiàng)時(shí)通知應(yīng)用程序多媒體演示多媒體演示頁輸出緩存頁輸出緩存頁輸出緩存概述頁輸出緩存概述使用頁輸出緩存使用頁輸出緩存u設(shè)置頁的可緩存性u演示和 練習(xí):緩存整個(gè)頁面u緩存一個(gè)頁面的多個(gè)版本u演示和練習(xí):緩存一個(gè)頁面的多個(gè)版本u部分頁緩存u演示和練習(xí):緩存后替換u使用 Sq
22、lCacheDependency 類在 ASP.NET 中緩存u演示和練習(xí):使用 SqlCacheDependency 類在 ASP.NET 中緩存頁輸出緩存概述頁輸出緩存概述頁輸出緩存是指在緩存頁輸出緩存是指在緩存 ASP.NET 頁所生成的部分響頁所生成的部分響應(yīng)或所有響應(yīng)應(yīng)或所有響應(yīng) 提高提高Web應(yīng)用程序的性能應(yīng)用程序的性能提高提高Web服務(wù)器的吞吐量服務(wù)器的吞吐量設(shè)置頁的可緩存性:聲明性設(shè)置設(shè)置頁的可緩存性:聲明性設(shè)置其一:在頁面文件其一:在頁面文件(.aspx)或用戶控件文件(或用戶控件文件(.ascx)中添加中添加 OutputCache 指令來完成,并設(shè)置屬性:指令來完成,并設(shè)
23、置屬性:Duration、Location和和VaryByParam或或VaryByControl 其二:在其二:在Web.config文件中定義緩存配置文件,在文件中定義緩存配置文件,在配置文件中包括配置文件中包括 Location、duration 和和 varyByParam 設(shè)置設(shè)置 ,在頁面或用戶控件文件中包含,在頁面或用戶控件文件中包含 OutputCache 指令,并將指令,并將 CacheProfile 屬性設(shè)置為屬性設(shè)置為 Web.config 文件中定義的緩存配置文件的名稱文件中定義的緩存配置文件的名稱 設(shè)置頁的可緩存性:編程設(shè)置設(shè)置頁的可緩存性:編程設(shè)置通過通過Syste
24、m.Web.HttpCachePolicy類來設(shè)置和控制頁類來設(shè)置和控制頁輸出緩存輸出緩存 Response.Cache.SetExpires(DateTime.Now.AddSeconds(60); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true);演示和練習(xí):緩存整個(gè)頁面演示和練習(xí):緩存整個(gè)頁面多媒體演示多媒體演示緩存一個(gè)頁面的多個(gè)版本緩存一個(gè)頁面的多個(gè)版本使用使用VaryByParam屬性來設(shè)置網(wǎng)頁的多個(gè)版本屬性來設(shè)置網(wǎng)頁的多個(gè)版本 ,緩,緩
25、存因素有:存因素有:u初始請求 (HTTP GET) 中的查詢字符串u回發(fā)時(shí)傳遞的控制值(HTTP POST 值)u隨請求傳遞的 HTTP 標(biāo)頭u發(fā)出請求的瀏覽器的主版本號u頁中的自定義字符串uHttpCachePolicy類演示和練習(xí):緩存一個(gè)頁面的多個(gè)版本演示和練習(xí):緩存一個(gè)頁面的多個(gè)版本多媒體演示多媒體演示部分頁緩存部分頁緩存控件緩存控件緩存u控件緩存(也稱為片段緩存),可以通過創(chuàng)建用戶控件來包含緩存的內(nèi)容,然后將用戶控件標(biāo)記為可緩存來緩存部分頁輸出 緩存后替換緩存后替換u以聲明方式使用 Substitution 控件u以編程方式使用 Substitution 控件 APIu以隱式方式使
26、用 AdRotator 控件演示和練習(xí):緩存后替換演示和練習(xí):緩存后替換多媒體演示多媒體演示使用使用 SqlCacheDependency 類在類在 ASP.NET 中緩存中緩存使使 用用 System.Web.Caching.SqlCacheDependency 類創(chuàng)類創(chuàng)建依賴于數(shù)據(jù)庫中表或行的緩存項(xiàng)建依賴于數(shù)據(jù)庫中表或行的緩存項(xiàng) 演示和練習(xí):使用演示和練習(xí):使用 SqlCacheDependency 類在類在 ASP.NET 中緩存中緩存多媒體演示多媒體演示在在Web應(yīng)用中的異步處理應(yīng)用中的異步處理異步處理概述異步處理概述頁面的異步處理頁面的異步處理演示和練習(xí):創(chuàng)建一個(gè)異步處理的頁面演示和
27、練習(xí):創(chuàng)建一個(gè)異步處理的頁面異步調(diào)用異步調(diào)用Web服務(wù)服務(wù)演示和練習(xí):異步調(diào)用演示和練習(xí):異步調(diào)用Web服務(wù)服務(wù)客戶端異步客戶端異步演示和練習(xí):在網(wǎng)頁中實(shí)現(xiàn)客戶端回調(diào)演示和練習(xí):在網(wǎng)頁中實(shí)現(xiàn)客戶端回調(diào)數(shù)據(jù)的異步訪問數(shù)據(jù)的異步訪問異步處理概述異步處理概述在主應(yīng)用程序線程以外的線程中執(zhí)行打開大文件、在主應(yīng)用程序線程以外的線程中執(zhí)行打開大文件、連接遠(yuǎn)程計(jì)算機(jī)或數(shù)據(jù)庫查詢等耗時(shí)較長的任務(wù)連接遠(yuǎn)程計(jì)算機(jī)或數(shù)據(jù)庫查詢等耗時(shí)較長的任務(wù)增加整個(gè)應(yīng)用的吞吐量,提高應(yīng)用的響應(yīng)速度增加整個(gè)應(yīng)用的吞吐量,提高應(yīng)用的響應(yīng)速度 頁面的異步處理頁面的異步處理:同步執(zhí)行和異步執(zhí)行頁面流程同步執(zhí)行和異步執(zhí)行頁面流程頁面的異步處
28、理:關(guān)鍵任務(wù)頁面的異步處理:關(guān)鍵任務(wù)設(shè)定頁面設(shè)定頁面Page指令中設(shè)置屬性指令中設(shè)置屬性Async為為true在在Page_Load事件方法中調(diào)用事件方法中調(diào)用Page類的類的AddOnPreRenderCompleteAsync方法,為異步頁面注方法,為異步頁面注冊異步處理的開始和結(jié)束事件處理程序委托冊異步處理的開始和結(jié)束事件處理程序委托 在服務(wù)器端申明異步請求的發(fā)起方法在服務(wù)器端申明異步請求的發(fā)起方法(BeginGetAsyncData)和結(jié)束后調(diào)用的方法)和結(jié)束后調(diào)用的方法(EndGetAsyncData),并在),并在Page_Load方法中通過方法中通過調(diào)用調(diào)用Page類的類的Add
29、OnPreRenderCompleteAsync方法注方法注冊這兩個(gè)方法冊這兩個(gè)方法 演示和練習(xí):創(chuàng)建一個(gè)異步處理頁面演示和練習(xí):創(chuàng)建一個(gè)異步處理頁面多媒體演示多媒體演示異步調(diào)用異步調(diào)用Web服務(wù)服務(wù):Begin/End 模式模式Wsdl.exe 為為 Web 服務(wù)中發(fā)布的每項(xiàng)操作自動(dòng)創(chuàng)建三個(gè)方法服務(wù)中發(fā)布的每項(xiàng)操作自動(dòng)創(chuàng)建三個(gè)方法 代理類中方法的名稱代理類中方法的名稱說說 明明為名為 的 Web 服務(wù)方法同步發(fā)送消息Begin開始與名為 的 Web 服務(wù)方法的異步消息通信。客戶端指示 Begin 方法開始對服務(wù)調(diào)用進(jìn)行處理,但立即返回。返回值不是 Web 服務(wù)方法指定的數(shù)據(jù)類型,而是實(shí)現(xiàn) I
30、AsyncResult 接口的類型End 結(jié)束與名為 的 Web 服務(wù)方法的異步消息通信,返回的值是 Web 服務(wù)方法調(diào)用的結(jié)果異步調(diào)用異步調(diào)用Web服務(wù)服務(wù):事件驅(qū)動(dòng)的異步編程模式事件驅(qū)動(dòng)的異步編程模式 基于事件處理回調(diào)的新的異步編程模型,可以簡化基于事件處理回調(diào)的新的異步編程模型,可以簡化生成多線程應(yīng)用程序的過程,而不必自己實(shí)現(xiàn)復(fù)雜生成多線程應(yīng)用程序的過程,而不必自己實(shí)現(xiàn)復(fù)雜的多線程代碼的多線程代碼演示和練習(xí):異步調(diào)用演示和練習(xí):異步調(diào)用Web服務(wù)服務(wù)多媒體演示多媒體演示客戶端異步客戶端異步需要實(shí)現(xiàn)的接口:需要實(shí)現(xiàn)的接口:u實(shí)現(xiàn) ICallbackEventHandler 接口u實(shí)現(xiàn) Ra
31、iseCallbackEvent和GetCallbackResult 接口方法需要實(shí)現(xiàn)的客戶端三個(gè)腳本函數(shù):需要實(shí)現(xiàn)的客戶端三個(gè)腳本函數(shù):u實(shí)現(xiàn)一個(gè)調(diào)用幫助器方法的函數(shù)u實(shí)現(xiàn)一個(gè) clientCallBack的函數(shù)u實(shí)現(xiàn)一個(gè)執(zhí)行對服務(wù)器的實(shí)際請求的 Helper 函數(shù)演示和練習(xí):在網(wǎng)頁中實(shí)現(xiàn)客戶端回調(diào)演示和練習(xí):在網(wǎng)頁中實(shí)現(xiàn)客戶端回調(diào)多媒體演示多媒體演示數(shù)據(jù)庫的異步訪問數(shù)據(jù)庫的異步訪問ADO.NET 在其在其 SqlCommand 類,對類,對BeginExecuteNonQuery、BeginExecuteReader 和和 BeginExecuteXmlReader 方法(與方法(與 En
32、dExecuteNonQuery、EndExecuteReader 和和 EndExecuteXmlReader 方法搭配)提供異步支持方法搭配)提供異步支持Health MonitorHealth Monitor概述概述使用內(nèi)置的使用內(nèi)置的Web事件和提供程序事件和提供程序演示和練習(xí):配置內(nèi)置的演示和練習(xí):配置內(nèi)置的Web事件和提供程序事件和提供程序創(chuàng)建自定義事件提供程序創(chuàng)建自定義事件提供程序演示和練習(xí):創(chuàng)建自定義事件提供程序演示和練習(xí):創(chuàng)建自定義事件提供程序創(chuàng)建自定義事件創(chuàng)建自定義事件演示和練習(xí):創(chuàng)建自定義事件演示和練習(xí):創(chuàng)建自定義事件HealthMonitor概述概述監(jiān)視應(yīng)用方案監(jiān)視應(yīng)用方案u監(jiān)視應(yīng)用程序的性能以確保它正常運(yùn)行u快速診斷出現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國快速連接器數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年中國溫度風(fēng)爐市場調(diào)查研究報(bào)告
- 2025年度草捆生物質(zhì)燃料供應(yīng)合同3篇
- 2025年度綠色生態(tài)農(nóng)資銷售合作合同范本2篇
- 2025年農(nóng)業(yè)觀光休閑果園生態(tài)農(nóng)業(yè)技術(shù)研發(fā)與應(yīng)用合同4篇
- 三方債務(wù)合同:2024年企業(yè)互保案例版
- 二零二五年度暖氣設(shè)備生產(chǎn)與市場拓展承包合同范本4篇
- 二零二五年度建筑渣土清運(yùn)及環(huán)保處理承包協(xié)議4篇
- 二零二五版女方出軌離婚時(shí)子女監(jiān)護(hù)權(quán)及贍養(yǎng)費(fèi)協(xié)議范本3篇
- 2025年槳扇發(fā)動(dòng)機(jī)項(xiàng)目風(fēng)險(xiǎn)分析和評估報(bào)告
- 鉗工考試題及參考答案
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)五 引發(fā)用戶共鳴外部條件的把控
- 工程造價(jià)專業(yè)職業(yè)能力分析
- 醫(yī)藥高等數(shù)學(xué)知到章節(jié)答案智慧樹2023年浙江中醫(yī)藥大學(xué)
- 沖渣池施工方案
- 人教版初中英語八年級下冊 單詞默寫表 漢譯英
- 學(xué)校網(wǎng)絡(luò)信息安全管理辦法
- 中國古代文學(xué)史 馬工程課件(下)21第九編晚清文學(xué) 緒論
- 2023年鐵嶺衛(wèi)生職業(yè)學(xué)院高職單招(語文)試題庫含答案解析
- 2205雙相不銹鋼的焊接工藝
- 2023年全國高中數(shù)學(xué)聯(lián)賽江西省預(yù)賽試題及答案
評論
0/150
提交評論