Sudah 7 tahun sejak ASP dirilis, dan penggunaan teknologi ASP sudah cukup matang. Sejak Microsoft meluncurkan ASP.NET, secara bertahap Microsoft berhenti memperbarui versi ASP. Namun berhubung masih banyak orang yang terbiasa menggunakan ASP untuk mengembangkan website, sekali lagi saya akan menggunakan contoh sederhana untuk mengilustrasikan cara menggunakan Cache di ASP.
Sederhananya, prinsip dasar penggunaan Cache adalah menyimpan data yang sering dibutuhkan dan mahal ke dalam memori dalam jangka waktu tertentu sehingga data tersebut dapat diakses secara langsung dan global. Misalnya, ada beberapa data yang perlu ditanyakan dari beberapa tabel di database, dan hampir setiap halaman perlu memanggil data ini. Implementasi terbaik dalam hal ini adalah dengan menyimpan bagian data ini ke dalam cache. Implementasi sederhana di ASP adalah merangkum bentuk ekspresi akhir dari data ini (seperti aliran HTML) dalam sebuah string dan kemudian menyimpannya di objek bawaan ASP. Aplikasi (artikel ini terutama yang dibahas adalah Cache dinamis, dan aplikasi ASP sederhana akan dihilangkan). Keuntungannya adalah HTML ini dapat dipanggil secara global di seluruh website, dan Aplikasi tersimpan di memori, sehingga tidak perlu query ke database, sehingga mempercepat waktu respon dan menghemat beban server. Tentu saja, hal ini mengorbankan konsumsi memori dan merupakan contoh umum dari pertukaran ruang dengan waktu.
Walaupun banyak manfaat yang didapat dari penggunaan cara ini, namun ketika menjumpai sumber data (database) yang sering berubah-ubah, cara ini mungkin sudah tidak bisa diterapkan lagi, karena objek Aplikasi ASP mempunyai kekurangan yaitu tidak dapat otomatis berubah seiring dengan perubahan sumber data. . mengubah, atau mengontrol interval penyegaran. Oleh karena itu, pengembang perlu memprogram untuk mengimplementasikan Cache dinamis. Tentu saja, selama perancangan program, Aplikasi dapat diperbarui setiap kali sumber data (database) diubah. Dengan demikian sumber data (database) selalu konsisten. Akan ada lebih banyak masalah yang perlu dipertimbangkan dalam pemrograman, dan detailnya mudah terlewatkan. Jadi saya tidak merekomendasikan cara ini kecuali pada situasi tertentu.
Menurut saya cara terbaik dalam ASP adalah menggunakan pemrograman untuk menyegarkan Cache secara berkala, yang berarti mengatur waktu kedaluwarsa untuk data yang disimpan dalam Aplikasi. Tentu saja, objek Aplikasi di ASP tidak memiliki atribut ExpireTime. Hal ini perlu dilaksanakan secara terprogram.
Kode
ASP: default.asp
< %@Bahasa=VBScript% >
<%Opsi Eksplisit%>
<%Respon.Buffer=Benar%>
<!--#termasuk file = "sambungan.asp"-->
<!--#include file = "GetCache.asp"-->
<HTML>
<KEPALA>
<TITLE>Demonstrasi Cache ASP</TITLE>
<META HTTP-EQUIV="Jenis Konten" CONTENT="teks/html; charset=gb2312">
</KEPALA>
<TUBUH>
<h4>Segarkan Cache setiap 10 detik:</h4>
<%
respon.Flush
DapatkanHTMLStream
respon.Tulis
Aliran HTML
%>
</tubuh>
</html>
ASP:getcache.asp
<%
Const CACHE_DEFAULT_INTERVAL = 30 'Segarkan cache setiap 30 detik
Redupkan Aliran HTML
DimIs Kedaluwarsa
IsExpires = CacheKedaluwarsa
FungsiCacheKedaluwarsa
Redupkan strLastUpdate
Redupkan hasil strLastUpdate = Application("LastUpdate")
Jika (strLastUpdate = "") Atau (CACHE_DEFAULT_INTERVAL < DateDiff("s", strLastUpdate, Sekarang)) Lalu
hasilnya = benar
Setel Waktu Pembaruan Terakhir
Kalau tidak
hasil = salah
Akhiri Jika
CacheExpires = hasil
Sub Set
Fungsi Akhir Waktu Pembaruan Terakhir
Aplikasi.Kunci
Aplikasi("Pembaruan Terakhir") = CStr(sekarang())
Aplikasi.Buka Kunci
Akhir Sub
Sub GetHTMLStream
Jika Kedaluwarsa Lalu
PerbaruiHTMLStream
Akhiri Jika
HTMLStream=Aplikasi("CACHE_HTMLStream")
Akhiri Sub
Sub PembaruanHTMLStream
redup d
d = AmbilHTMLStream
Aplikasi.Kunci
Aplikasi("CACHE_HTMLStream") = d
Aplikasi.Buka Kunci
Akhiri Sub
Fungsi FetchHTMLStream
Redupkan rs, strSQL, strHTML
Setel rs = CreateObject("ADODB.Recordset")
strSQL = "pilih ID kategori, nama kategori dari kategori"
rs.Buka strSQL, strConn,adOpenForwardOnly,adLockReadOnly
strHTML = strHTML & "<pilih nama=""slt_search"">"
sementara (bukan rs.EOF)
strHTML = strHTML & "<pilihan>"
strHTML = strHTML & rs.Fields("nama kategori")
strHTML = strHTML & "</option>" rs.MoveNext
pergi ke
strHTML = strHTML & "</pilih>"
rs.Tutup
Setr=Tidak ada
AmbilHTMLStream = strHTML
Fungsi Akhir
%>
ASP: conn.asp
<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library" TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->
<%
redupkan strConn
strConn = "Penyedia=SQLOLEDB.1; Keamanan Terintegrasi=SSPI;Info Keamanan Tetap=False;Katalog Awal=Northwind"
%>