av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

淺析ASP.NET應(yīng)用ViewState技術(shù)

如果你有在IE中查看當(dāng)前瀏覽頁面HTML源代碼的習(xí)慣,你也許常會(huì)看到類似以下的代碼片斷:

10年的紅寺堡網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整紅寺堡建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“紅寺堡網(wǎng)站設(shè)計(jì)”,“紅寺堡網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

 
 
 
  1.  type="hidden" name="__VIEWSTATE" value=
    "dDwtMzU5NzUyMTQ1O3Q8O2w8aTwwPjs+O2w8dDw7bDxpPDA+Oz47bDx0PDtsPG
  2. ……

聰明的你一定會(huì)問,這是什么?有什么作用?它與本篇文章有何轉(zhuǎn)折親關(guān)系?各位看官,且聽我慢慢道來。

其實(shí),這就是MS在ASP.NET應(yīng)用ViewState技術(shù)的特征表現(xiàn)。為了頁面能在PostBack后依然能讀取服務(wù)器控件原有的狀態(tài)數(shù)據(jù),而ASP.NET應(yīng)用ViewState技術(shù)本質(zhì)上是用一個(gè)默認(rèn)名稱為"__VIEWSTATE的 Hidden類型表單域來保存和傳遞數(shù)據(jù)(這些數(shù)據(jù)是經(jīng)過了序列化后Base64編碼的字符串值,且是在方法 Page.SavePageStateToPersistenceMedium輸出前保存、并由 Page.LoadPageStateFromPersistenceMedium加載)。雖然我們可以通過三種級(jí)別來輕松禁用掉這些數(shù)據(jù)的往返傳遞:

Machine級(jí)  在machine.config中設(shè)置< pages enableViewStateMac='false' />
Application級(jí)  在Web Applicatin的web.config中設(shè)置< pages enableViewStateMac='false' />
單頁面級(jí)  在該頁面中設(shè)置<  enableViewStateMac='false' %>或通過代碼設(shè)置Page.EnableViewStateMac = false;

可是,如果我們完全能通過禁用ViewState來解決數(shù)據(jù)傳輸負(fù)擔(dān)而且不產(chǎn)生副作用的話,那MS的架構(gòu)師們也不會(huì)傻到如此可愛的地步(可有可無的東東留它何用?),正因我們往往不能通過簡單的禁用來解決這個(gè)傳輸負(fù)擔(dān)問題,所以我們只能另辟路徑使之在網(wǎng)絡(luò)往返中傳輸量盡可能地小,于是,壓縮成了我們的選擇。只要我們重載Page類的 SavePageStateToPersistenceMedium()方法與 LoadPageStateFromPersistenceMedium()方法,并在重載方法中對(duì)數(shù)據(jù)進(jìn)行壓縮與解壓的處理即可。開源項(xiàng)目SharpZipLib提供的類GZipInputStream與GZipOutputStream進(jìn)入了我們的視野,為了方便,不妨寫個(gè)類CompressionHelper,代碼如下:

 
 
 
  1. using System.IO;
  2. using ICSharpCode.SharpZipLib.GZip;
  3. namespace Ycweb.Components
  4. {
  5. /**//// 
  6. /// Summary description for CompressionHelper.
  7. /// 
  8. public class CompressionHelper
  9. {
  10. public CompressionHelper()
  11. {
  12. // TODO: Add constructor logic here
  13. }
  14. /**//// 
  15. /// 壓縮數(shù)據(jù)
  16. /// 
  17. ///  name="data">待壓縮的字節(jié)數(shù)組
  18. /// 壓縮后的字節(jié)數(shù)組
  19. public static byte[] CompressByte(byte[] data)
  20. {
  21. MemoryStream ms = new MemoryStream();
  22. Stream s=new GZipOutputStream(ms);    
  23. s.Write( data, 0, data.Length );
  24. s.Close();
  25. return ms.ToArray();    
  26. }
  27. /**//// 
  28. /// 解壓數(shù)據(jù)
  29. /// 
  30. ///  name="data">待解壓的字節(jié)數(shù)組
  31. /// 解壓出的字節(jié)數(shù)組
  32. public static byte[] DeCompressByte(byte[] data)
  33. {
  34. byte[] writeData = new byte[2048];
  35. MemoryStream ms= new MemoryStream( data );
  36. Stream sm = new GZipInputStream(ms) as Stream;
  37. MemoryStream outStream = new MemoryStream();
  38. while (true)
  39. {
  40. int size = sm.Read(writeData,0, writeData.Length );
  41. if (size >0)
  42. {
  43. outStream.Write(writeData,0,size);
  44. }
  45. else
  46. {
  47. break;
  48. }
  49. }
  50. sm.Close();
  51. byte[] outArr = outStream.ToArray();
  52. outStream.Close();
  53. return outArr;    
  54. }
  55. }
  56. }

以上介紹ASP.NET應(yīng)用ViewState技術(shù)


當(dāng)前名稱:淺析ASP.NET應(yīng)用ViewState技術(shù)
鏈接分享:http://uogjgqi.cn/article/dhjigec.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流