ID Artikel: 308378 - Kajian Terakhir: 17 Mei 2012 - Revisi: 3.0

Cara melakukan fragmen Caching di ASP.NET dengan menggunakan Visual C#.NET

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menunjukkan bagaimana menerapkan fragmen caching di ASP.NET. Fragmen caching tidak benar-benar cache potongan-potongan kode formulir Web langsung; fragmen caching merujuk kepada caching pengguna individu kontrol (.ascx) dalam formulir Web. Setiap kontrol pengguna dapat memiliki durasi cache independen dan implementasi tentang bagaimana perilaku caching untuk diterapkan. Kode contoh dalam artikel ini menggambarkan cara mencapai fungsi ini.

Fragmen caching berguna ketika Anda perlu untuk men-cache hanya sebuah subset dari sebuah halaman. Bar navigasi, header dan footer adalah calon yang baik untuk fragmen caching.

Persyaratan

  • Microsoft Windows 2000
  • Microsoft Internet Information Server (IIS)
  • Microsoft.NET Framework
  • ASP.NET

Menciptakan situs web ASP.Aplikasi NET Web menggunakan C#.NET

Langkah-langkah berikut menunjukkan cara membuat ASP baru.Aplikasi NET Web yang bernama FragmentCache.
  1. Buka Microsoft Visual Studio.NET
  2. Pada File menu, arahkan ke baru, dan kemudian klik proyek.
  3. Di kotak dialog Proyek baru , klik Visual C# proyek di bawah Jenis proyek, dan kemudian klik ASP.Aplikasi NET Web di bawah template.
  4. Dalam kotak Name , ketik FragmentCache. Dalam kotak lokasi , pilih server sesuai. Jika Anda menggunakan server lokal, Anda dapat meninggalkan nama server sebagai http://localhost.

Membuat kontrol pengguna

Bagian ini menyediakan kode contoh dan penjelasan dari masing-masing kontrol pengguna yang akan Anda gunakan dalam artikel ini. Anda dapat menyalin dan menyisipkan kode contoh ke terkait .ascx file dan kode di belakang halaman seperti yang dijelaskan.

User Control 1 (FragmentCtrl1.ascx)

Kontrol pengguna berikut, FragmentCtrl1.ascx, ini sangat sederhana. FragmentCtrl1.ascx menulis waktu bahwa entri cache untuk item yang terjadi. Seperti dengan semua kontrol yang dibuat untuk artikel ini, deskripsi dasar disediakan untuk kontrol untuk membuatnya lebih mudah untuk membedakan pengaturan dan perilaku terkait pada jangka waktu di bagian selanjutnya.
  1. Dalam Visual Studio.NET, membuat kontrol pengguna baru sebagai berikut:
    1. Solusi Explorer, klik kanan-atas node proyek, menunjuk ke Adddan kemudian klik Tambahkan kontrol pengguna Web.
    2. Nama kontrol FragmentCtrl1.ascx, dan kemudian klik Buka.
  2. Pastikan bahwa tab desain dipilih. Klik dan tarik kontrol formulir Web Label dari bagian Formulir Web toolbox, dan drop kontrol Label ke halaman.
  3. Klik Label kontrol. Di panel properti Visual Studio.NET integrated development environment (IDE), jenis CacheEntryTime dalam ID properti, dan meninggalkan properti teks kosong.
  4. Beralih ke tampilan HTML, dan menambahkan direktif @ OutputCache berikut ke bagian atas halaman:
    <%@ OutputCache Duration="40" VaryByParam="none"%>
    					
  5. Klik kanan-atas .ascx file, dan kemudian klik Lihat kode untuk menampilkan halaman di belakang kode sumber.
  6. Tambahkan kode berikut untuk acara Page_Load , yang menetapkan properti teksCacheEntryTime label:
    private void Page_Load(object sender, System.EventArgs e)
          {
             CacheEntryTime.Text ="FragmentCtrl1: " +  DateTime.Now.TimeOfDay.ToString();
          }
    					

User Control 2 (FragmentCtrl2.ascx)

Meskipun Anda hanya dapat membuat versi lain dari kontrol pertama dengan durasi berbeda cache untuk menunjukkan bagaimana beberapa kontrol pengguna dapat memiliki independen perilaku dalam halaman yang sama, bagian ini membuat kontrol kedua, FragmentCtrl2.ascx, lebih menarik. FragmentCtrl2.ascx digunakan untuk memperkenalkan atribut VaryByControl . VaryByControl memungkinkan berbeda cache entri untuk dibuat berdasarkan nilai-nilai untuk kontrol tertentu. Fungsi ini dibuat jauh lebih jelas pada jangka waktu pada bagian berikutnya.
  1. Dalam Visual Studio.NET, membuat kontrol pengguna baru sebagai berikut:
    1. Solusi Explorer, klik kanan-atas node proyek, menunjuk ke Adddan kemudian klik Tambahkan kontrol pengguna Web.
    2. Nama kontrol FragmentCtrl2.ascx, dan kemudian klik Buka.
  2. Pastikan bahwa tab desain dipilih. Klik dan tarik kontrol formulir Web Label dari bagian Formulir Web toolbox, dan kemudian drop kontrol Label ke halaman.
  3. Klik Label kontrol. Di panel properti, ketik CacheEntryTime dalam ID properti, dan meninggalkan properti teks kosong.
  4. Posisi kursor langsung setelah kontrol Label , dan kemudian tekan ENTER untuk memindahkan ke baris berikutnya di halaman.
  5. Klik dan tarik kontrol formulir Web RadioButtonList dari bagian Formulir Web toolbox, dan menjatuhkannya ke halaman. Kontrol RadioButtonList harus muncul dengan sendirinya garis jatuh berseri setelah Label kontrol.
  6. Meng-klik kontrol RadioButtonList . Di panel properti, ketik MyRadioButtonList dalam ID properti.
  7. Di panel properti, Cari properti item untuk MyRadioButtonList kontrol, klik koleksi, dan kemudian klik tombol tekan elipsis (...) yang muncul di sebelah koleksi.
  8. Di jendela ListItem koleksi Editor , menambahkan ListItem anggota sebagai berikut:
    1. Dalam anggota, klik Tambah.
    2. Di bagian properti ListItem , mengatur teks dan nilai untuk Ya, dan Atur dipilih ke True.
    3. Dalam anggota, klik Tambah lagi.
    4. Di bagian properti ListItem , mengatur teks dan nilaitidak, dan mengatur pilihan untuk palsu.
    5. Dalam anggota, klik Tambah terakhir kalinya.
    6. Di bagian properti ListItem , mengatur teks dan nilai untuk mungkin, dan mengatur pilihan untuk palsu.
    7. Klik OK untuk kembali ke berkas .ascx dalam Design view. Perhatikan bahwa tiga radio tombol tekan muncul yang terkandung dalam kontrol RadioButtonList : Ya, tidakdan mungkin.
  9. Posisi kursor langsung setelah RadioButtonList kontrol, dan tekan ENTER untuk memindahkan ke baris berikutnya di halaman.
  10. Klik dan tarik formulir Web tombol tekan kontrol dari bagian Formulir Web toolbox, dan menjatuhkannya ke halaman. tombol tekan kontrol harus muncul dengan sendirinya garis jatuh berseri setelah kontrol RadioButtonList .
  11. Klik tombol tekan kontrol. Di panel properti, ketik Kirim dalam teks properti.
  12. Beralih ke tampilan HTML, dan menambahkan direktif @ OutputCache berikut ke bagian atas halaman:
    <%@ OutputCache Duration="60" VaryByParam="none" VaryByControl="MyRadioButtonList"%>
    					
  13. Klik kanan-atas .ascx file, dan kemudian klik Lihat kode untuk menampilkan halaman di belakang kode sumber.
  14. Tambahkan kode berikut untuk acara Page_Load , yang menetapkan properti teksCacheEntryTime label:
    private void Page_Load(object sender, System.EventArgs e)
          {
             CacheEntryTime.Text = "FragmentCtrl2: " + DateTime.Now.TimeOfDay.ToString();
          }
    					

Membuat formulir Web berisi kontrol pengguna

Anda sekarang dapat membuat formulir Web (.aspx) mengandung kontrol pengguna baru dikembangkan. Untuk membuat formulir Web, ikuti langkah berikut:
  1. Tambahkan formulir Web baru bernama FragmentCaching.aspx untuk proyek Anda dalam Visual Studio.NET sebagai berikut:
    1. Solusi Explorer, klik kanan-atas node proyek, menunjuk ke Adddan kemudian klik Tambahkan formulir Web.
    2. Nama FragmentCaching.aspx bentuk Web, dan kemudian klik Buka.
  2. Pastikan bahwa tab desain dipilih. Klik dan tarik kontrol formulir Web Label dari bagian Formulir Web toolbox, dan menjatuhkannya ke halaman.
  3. Klik Label kontrol. Di panel properti, ketik Waktu dalam ID properti, dan meninggalkan properti teks kosong.
  4. Posisi kursor langsung setelah Label kontrol, dan tekan ENTER untuk memindahkan ke baris berikutnya di halaman.
  5. Tarik FragmentCtrl1.ascx, dan menaruhnya ke formulir Web sehingga posisi setelah kontrol Label pada baris dengan sendirinya. Posisi kursor langsung setelah kontrol, dan tekan ENTER untuk memindahkan ke baris berikutnya di halaman.
  6. Tarik FragmentCtrl2.ascx, dan menaruhnya ke formulir Web sehingga posisi setelah FragmentCtrl1.ascx garis jatuh dengan sendirinya.
  7. Dalam pandangan HTML, formulir Web harus muncul mirip dengan kode berikut:
    <%@ Page language ="c#" Codebehind="FragmentCaching.aspx.cs" 
    AutoEventWireup="false" Inherits="FragmentCache.FragmentCaching" %>
    <%@ Register TagPrefix="uc1" TagName="FragmentCtrl1" Src="FragmentCtrl1.ascx" %>
    <%@ Register TagPrefix="uc1" TagName="FragmentCtrl2" Src="FragmentCtrl2.ascx" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
       <HEAD>
          <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
          <meta name="CODE_LANGUAGE" Content="C#">
          <meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)">
          <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
       </HEAD>
       <body>
          <form id="FragmentCaching" method="post" runat="server">
             <P>
                WebForm Time:
                <asp:Label id="Time" runat="server" ForeColor="Blue"></asp:Label>
             </P>
             <P>
                <uc1:FragmentCtrl1 id="FragmentCtrl11" runat="server">
                </uc1:FragmentCtrl1>
             </P>
             <P>
                <uc1:FragmentCtrl2 id="FragmentCtrl21" runat="server">
                </uc1:FragmentCtrl2>
             </P>
       </form>
       </body>
    </HTML>
    						
    Catatan: Pastikan bahwa kontrol ditempatkan di dalam
  8. Klik kanan-atas .aspx file, dan kemudian klik Lihat kode untuk menampilkan halaman di belakang kode sumber.
  9. Tambahkan kode berikut untuk acara Page_Load , yang menetapkan properti teks label waktu :
    private void Page_Load(object sender, System.EventArgs e)
          {
             Time.Text = "WebFormTime: " + DateTime.Now.TimeOfDay.ToString();
          }
    					
  10. Dari File menu, klik Simpan semua untuk menyelamatkan kontrol pengguna, formulir Web dan berkas proyek terkait lainnya.
  11. Dari membangun menu dalam Visual Studio.NET lingkungan pengembangan terpadu (IDE), klik membangun untuk membangun proyek.

Menjalankan sampel

Bagian ini menunjukkan bagaimana untuk melihat kode pada jangka waktu untuk menyaksikan perilaku caching dan kemudian menjelaskan secara singkat mengapa kode melakukan cara yang dilakukannya.
  1. In the Visual Studio.NET IDE solusi Explorer, klik kanan-atas formulir Web FragmentCaching.aspx, dan kemudian klik Lihat dalam Browser untuk menjalankan kode.
  2. Setelah halaman muncul dalam browser, klik-kanan halaman, dan kemudian klik Refresh untuk me-refresh halaman. Anda juga dapat menekan tombol tekan F5 untuk me-refresh halaman jika Anda melihat halaman dalam browser yang eksternal untuk Visual Studio.NET IDE.

    Perhatikan bahwa waktu pada formulir Web telah diperbarui, tetapi kontrol pengguna masih menampilkan waktu ketika entri terkait cache mereka dibuat.
  3. Mengendalikan kedua, klik Kirim. Perhatikan bahwa kontrol menampilkan waktu yang diperbarui. Ini adalah dalam menanggapi VaryByControl atribut pengaturan untuk mengontrol pengguna yang referensi RadioButtonList kontrol.
  4. Klik tidak, dan kemudian klik Kirim lagi. Perhatikan bahwa saat diperbarui lagi dalam kontrol pengguna layar. Hal ini karena cache entri baru dibuat untuk kontrol yang didasarkan pada pengaturan ini tidak ada nilai.

    Ulangi langkah ini kecuali dengan pilihan mungkin . Anda melihat perilaku yang sama.
  5. Klik Ya, dan kemudian klik Kirim lagi. Ulangi operasi ini dengan tidak dan mungkin pilihan. Perhatikan bahwa ini pilihan untuk kontrol cache dan bahwa mereka menampilkan entri sebelumnya cache. Jika Anda terus klik Kirim melewati @ OutputCache direktif durasi pengaturan, kontrol pengguna saat diperbarui untuk setiap nilai tertentu pilihan untuk mengontrol RadioButtonList .
Catatan: ini bukanlah tujuan dari artikel ini untuk menutupi semua pengaturan mungkin dan skenario untuk fragmen caching. Untuk informasi lebih lanjut, lihat Referensi di bagian akhir artikel ini.

Pemecahan masalah

  • Jangan mencoba untuk pemrograman memanipulasi kontrol pengguna yang cache output. Hal ini karena kontrol hanya secara dinamis dibuat ketika dijalankan pertama kali sebelum entri cache terjadi. Output cache memenuhi semua permintaan lain sampai kontrol berakhir.
  • Jika formulir Web pengguna yang kontrol yang di-host memiliki output cache durasi yang lebih lama daripada durasi kali kontrol pengguna, formulir Web pengaturan menentukan perilaku caching kontrol.

REFERENSI

Untuk informasi tambahan tentang ASP.NET caching, klik nomor artikel di bawah ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
307225  (http://support.microsoft.com/kb/307225/EN-US/ ) INFO: ASP.BERSIH Caching Overview

Berlaku bagi:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Kata kunci: 
kbcaching kbhowtomaster kbservercontrols kbwebforms kbmt KB308378 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:308378  (http://support.microsoft.com/kb/308378/en-us/ )