วิธีการแคชใน ASP.NET โดยใช้ Visual Basic .NET

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 811431 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีการที่ควบคุมวิธี ASP.NET เก็บเว็บเพจและวัตถุข้อมูล โดยการแค คุณหลีกเลี่ยง re-creating ข้อมูลเมื่อคุณทำการร้องขอในภายหลัง แคเป็นเทคนิคหนึ่งที่สำคัญสำหรับการสร้างประสิทธิภาพสูงและโปรแกรมประยุกต์ของเซิร์ฟเวอร์ scalable ในการร้องขอหน้าแรก คุณสามารถเก็บข้อมูลวัตถุ หน้า หรือส่วนของหน้ากระดาษในหน่วยความจำ คุณสามารถเก็บรายการเหล่านี้ บนเว็บเซิร์ฟเวอร์ บนพร็อกซีเซิร์ฟเวอร์ หรือ ในเบราว์เซอร์

ข้อมูลเพิ่มเติม

asp.net ให้วิธีที่สะดวกในการควบคุมการแคช คุณสามารถใช้ได้@ OutputCachedirective เพื่อควบคุมหน้าผลลัพธ์การแคใน ASP.NET การใช้HttpCachePolicyคลาสที่เก็บวัตถุเอง เช่น datasets หน่วยความจำของเซิร์ฟเวอร์ คุณสามารถเก็บในแคชในโปรแกรมประยุกต์เช่นเบราว์เซอร์ไคลเอ็นต์ พร็อกซีเซิร์ฟเวอร์ และบริการข้อมูลทางอินเทอร์เน็ตของ Microsoft (IIS) โดยใช้ส่วนหัว HTTP ของตัวควบคุมในแคช คุณสามารถควบคุมแคช

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแคผลลัพธ์ของ ASP.NET คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
308516วิธีการที่ควบคุมหน้าผลลัพธ์ของการแคใน ASP.NET โดยใช้ Visual Basic .NET

เพจ ASP.NET แคช

คุณสามารถแคช โดยใช้การ@ OutputCachedirective หรือโดยทางโปรแกรมถึงรหัส โดยใช้ Visual พื้นฐาน.NET หรือ Visual .NET c# กระบวนการ@ OutputCacheประกอบด้วย directive แบบตำแหน่ง:แอตทริบิวต์ คุณลักษณะนี้กำหนดตำแหน่งที่ตั้งสำหรับสินค้าที่เก็บไว้ชั่วคราว คุณอาจระบุตำแหน่งที่ตั้งต่อไปนี้อย่างใดอย่างหนึ่ง:
  • ใด ๆ-ซึ่งเก็บในแคชผลลัพธ์ในของไคลเอ็นต์เบราว์เซอร์ บนพร็อกซีเซิร์ฟเวอร์ (หรือเซิร์ฟเวอร์อื่น) ที่มีส่วนร่วม ในการร้องขอ หรือ บนเซิร์ฟเวอร์ที่มีการประมวลผลการร้องขอ โดยค่าเริ่มต้นใด ๆถูกเลือก
  • ไคลเอ็นต์-ซึ่งเก็บแคผลลัพธ์ในเบราว์เซอร์ของไคลเอ็นต์
  • downstream-ซึ่งเก็บในแคชผลลัพธ์ในแคชสามารถอุปกรณ์ใด ๆ (อื่นนอกเหนือจากเซิร์ฟเวอร์ที่จุดเริ่มต้น) ที่มีส่วนร่วมในการร้องขอ
  • เซิร์ฟเวอร์:-ซึ่งเก็บในแคชขาออกบนเว็บเซิร์ฟเวอร์
  • None-นี้จะปิดการแคชออก

ต่อไปนี้คือ ตัวอย่างรหัสสำหรับ@ OutputCachedirective และรหัสโดยทางโปรแกรมเท่านั้น
  • การจัดเก็บในแคชผลลัพธ์สำหรับช่วงเวลาที่ระบุ

    วิธีการ declarative:
    <%@ OutputCache Duration="60" VaryByParam="None" %>

    วิธีการด้านโปรแกรม:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
  • การจัดเก็บในแคชผลลัพธ์ในเบราว์เซอร์ไคลเอนต์ที่ร้องขอถูกสร้าง

    วิธีการ declarative:
    <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %>

    วิธีการด้านโปรแกรม:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Private)
    
  • การจัดเก็บในแคชผลลัพธ์บน HTTP 1.1 สามารถแคอุปกรณ์ใด ๆ รวมถึงพร็อกซีเซิร์ฟเวอร์และไคลเอนต์ที่ทำการร้องขอ

    วิธีการ declarative:
    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %>

    วิธีการด้านโปรแกรม:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.SetNoServerCaching()
  • การจัดเก็บในแคชขาออกบนเว็บเซิร์ฟเวอร์

    วิธีการ declarative:
    <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %>

    วิธีการด้านโปรแกรม:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Server)
    
  • การแคชผลลัพธ์สำหรับแต่ละคำขอ HTTP ที่มาถึง ด้วยเมืองที่แตกต่างกัน

    วิธีการ declarative:
    <%@ OutputCache duration="60" varybyparam="City" %>
    

    วิธีการด้านโปรแกรม:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.VaryByParams("City") = true
    
    สำหรับการVaryByCustomแอตทริบิวต์VaryByHeaderแอตทริบิวต์ และVaryByParamคุณลักษณะในการ@ OutputCachedirective,HttpCachePolicyแสดงระดับชั้นVaryByHeadersคุณสมบัติและVaryByParamsคุณสมบัติ และSetVaryByCustomวิธีการ

ปิดการไคลเอ็นต์และพร็อกซีแค

เมื่อต้องการปิดใช้งานการแคชออกสำหรับเพจที่มี ASP.NET Web ของสถานที่ไคลเอ็นต์ และ ที่ตั้งพร็อกซี ตั้งค่านี้ตำแหน่ง:ค่าแอตทริบิวต์Noneจากนั้น ตั้งค่านี้VaryByParamมูลค่าไปNoneในการ@ OutputCachedirective ใช้ตัวอย่างรหัสต่อไปนี้เพื่อปิดใช้งานไคลเอนต์และพร็อกซีที่แคช
  • วิธีการ declarative:
    <%@ OutputCache Location="None" VaryByParam="None" %>
  • วิธีการด้านโปรแกรม:
    Response.Cache.SetCacheability(HttpCacheability.NoCache)

แคชวัตถุเองในหน่วยความจำของเซิร์ฟเวอร์

asp.net รวมที่มีประสิทธิภาพ ง่ายใช้แคชกลไกที่คุณสามารถใช้เพื่อเก็บออบเจ็กต์ที่ต้องการทรัพยากรของเซิร์ฟเวอร์เพื่อสร้างในหน่วยความจำจำนวนมาก กระบวนการแคชคลาสที่ใช้วิธีการนี้ อินสแตนซ์เป็นส่วนตัวไปยังแต่ละโปรแกรมประยุกต์ และอายุการใช้งานถูกยึดกับแอพลิเคชันที่สอดคล้องกัน การแคชวัตถุเองใน ASP.Net โดยใช้การแคชคลาส ทำตามขั้นตอนเหล่านี้:
  1. สร้างโปรแกรมประยุกต์การเว็บ ASP.NET ใหม่ โดยใช้ Visual พื้นฐาน.NET
  2. โดยค่าเริ่มต้นWebForm1.aspxถูกสร้างขึ้น
  3. ในมุมมอง HTML ของWebForm1.aspxการแทนรหัสที่มีอยู่ ด้วยตัวอย่างรหัสต่อไปนี้:
    <%@ Import Namespace="System.Data.SqlClient" %>
    <%@ Import Namespace="System.Data" %>
    <HTML>
    	<script language="vb" runat="server">
    
    		Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    			Dim Source As DataView
    
    		'Retrieve the DataView object from the Cache class. If it does not exist, add the DataView object to the Cache class.
    
    		Source = CType(Cache("MyDataSet"), DataView)
    
    		If Source Is Nothing Then
    
    			Dim myConnection As SqlConnection = New SqlConnection("Server=ServerName; database=Pubs; user id=UID; password=PWD;")
    			Dim myCommand As SqlDataAdapter = New SqlDataAdapter("select * from Authors", myConnection)
    			Dim ds As DataSet = New DataSet()
    			myCommand.Fill(ds, "Authors")
    
    			Source = New DataView(ds.Tables("Authors"))
    			Cache("MyDataSet") = Source
    			CacheMsg.Text = "Dataset created explicitly"
    			
    		Else
    			
    			CacheMsg.Text = "Dataset retrieved from cache"
    
    		End If
    
    		' Bind the DataView object to DataGrid. 
    		MyDataGrid.DataSource = Source
    		MyDataGrid.DataBind()
    
    		End Sub
    
    	</script>
    	<body>
    		<form method="GET" runat="server" ID="Form1">
    	      <h3><font face="Verdana">Caching Data</font></h3>
    			<ASP:DataGrid id="MyDataGrid" runat="server"
    			Width="700"
    			BackColor="#ccccff"
    			BorderColor="black"
    			ShowFooter="false"
    			CellPadding=3
    			CellSpacing="0"
    			Font-Name="Verdana"
    			Font-Size="8pt"
    			HeaderStyle-BackColor="#aaaad" />
    			<p>
    			<i><asp:label id="CacheMsg" runat="server"/></i>
    	    </form>
    		</P>
    	</body>
    </HTML>
    หมายเหตุ:ค่าสำหรับการแทนServername,uidและpwdในตัวอย่างรหัสสำหรับSqlConnectionวัตถุของคุณ ชื่อเซิร์ฟเวอร์ SQL หมาย เลขของผู้ใช้ และรหัสผ่าน
  4. ในการตรวจแก้จุดบกพร่องเมนู คลิกเริ่มการทำงานเมื่อต้องการเรียกใช้โปรแกรมประยุกต์

    หมายเหตุ:เมื่อคุณรีสตาร์ทแอพลิเคชันแคชวัตถุถูกสร้างขึ้นใหม่

ข้อมูลอ้างอิง

หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
234067วิธีการป้องกันการแคใน Internet Explorer
247404วิธีการปรับเปลี่ยนส่วนหัว HTTP ของตัวควบคุมในแคชเมื่อคุณใช้ IIS
311006วิธีการป้องกันการเว็บแคใน Windows 2000
247389iis: วิธีการที่ปิดการใช้งานการแคของชนิด MIME ที่ระบุ
313561How To Set HTTP Headers for Content Expiration in IIS


สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft::
http://msdn2.microsoft.com/en-us/library/xsbfdd8c(vs.71).aspx


คุณสมบัติ

หมายเลขบทความ (Article ID): 811431 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 2.0
ใช้กับ
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Keywords: 
kbhowtomaster kbdatabinding kbcaching kbwebforms kbinfo kbmt KB811431 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:811431

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com