日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
淺析ASP.NET應(yīng)用ViewState技術(shù)

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

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

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

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

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

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

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


標題名稱:淺析ASP.NET應(yīng)用ViewState技術(shù)
文章地址:http://m.5511xx.com/article/dhjigec.html