Ini adalah pertama kalinya saya menulis artikel di CSDN. Bakat sastra dan pengetahuan teoritis saya terbatas. Saya menerima koreksi jika saya salah menulis. Faktanya, sudah banyak artikel tentang pembuatan ASP HTML di Internet, salah satu caranya adalah metode pembuatan ASP+XML. Meskipun salah satu kelebihannya adalah Anda dapat langsung mereferensikan kode sumber asli dari halaman yang akan dibuat tanpa perlu menulis template sebuah program, tetapi saya menguji metode ini. Pada saat itu, saya menemukan bahwa stabilitasnya buruk dan persyaratan kecepatan jaringannya tinggi (tentu saja tidak ada di server). Khususnya di ruang virtual, kesalahan sering dilaporkan. Mungkin karena pemrosesan kode saya yang tidak mencukupi dalam metode ini. Singkatnya, artikel ini menggunakan metode lain yang umum digunakan ASP+FSO. Kerangka kerja ini juga digunakan di sini untuk mengurangi waktu pembuatan saat memproses paging dalam jumlah besar.
Di sini saya mengutip contoh sederhana: (perjalanan e-commerce) halaman statis aplikasi hotel (htm) di kota-kota besar di seluruh negeri ditampilkan di paging
1. Lingkungan sistem aplikasi: win2000+ASP+MSSQL/ACCESS (database pada dasarnya tidak relevan) +iis5.0
2.1 daftar kota (CityHtml): termasuk tiga bidang yang mendefinisikan nama html statis (ID kota (nomor otomatis), nama kota (Nama Kota seperti Beijing), nama awalan html yang dihasilkan (HtmlStartName seperti beijing))
3.1 daftar hotel nasional ( Hotel): Disini saya hanya membuat tiga field (ID hotel (nomor otomatis), nama kota (City), nama hotel (HotelName)) untuk memudahkan referensi ke instance.
4.1 halaman ASP (ToHtm.asp) (digunakan untuk menghasilkan htm)
5.1 halaman bingkai loop (IframeToHtm.asp), kerangka aplikasi untuk menghasilkan htm secara batch.
Berikut ini adalah kode sumber dari dua halaman
bingkai loop untuk pembuatan halaman batch: IFrameToHtm .asp
< !--#include file="conn.asp"-->'Hubungkan ke database
<%
dimr,sql,j
set rs=Server.CreateObject("adodb.recordset")
sql="pilih * dari CityHtml"'Buka daftar kota di seluruh negeri
rs.open sql,sambungan,1,1
lakukan sampai rs.eof' melewati kota-kota besar%>
<!--Kerangka aplikasi berikut membuka halaman yang dihasilkan ToHtml-->
<IFRame name="LoadRcHtm<%=j%>" frameborder=0 lebar=100% tinggi=30 bergulir=no src="ToHtml.asp?City=<%=cstr(rs("city"))%>&HtmlStartName =<%=rs("HtmlStart")%>"></IFrame>
<%rs.movenext
loop%>
Hasilkan halaman program: ToHtm.asp Saya mungkin menulis komentar di kode sumber **
<!--#include file="conn.asp"-->'file koneksi data
<%
Pada Kesalahan Lanjutkan Berikutnya'Pemrosesan toleransi kesalahan
Definisi Dim City membuat kota membuat halaman
City=Request.Querystring("City")' Mendapatkan nilai hotel kota yang dihasilkan yang diteruskan dari kerangka kerja, yang akan diperkenalkan nanti
HtmlStartName=Request.Querystring("HtmlStartName")'Dapatkan awalan nama file html yang dihasilkan
Redupkan string pencarian sql, disini saya akan membuka tabel secara langsung tanpa mencari variabel, cukup tulis sendiri kondisi pencariannya.
sql="pilih * dari Hotel di mana [Kota] = '" & Kota & "' "
Redupkan objek operasi data oRs
Redupkan Jumlah Halaman'Untuk mengimplementasikan pembuatan halaman, Anda harus mengetahui berapa banyak halaman yang ada
Setel oRs = Server.CreateObject("ADODB.Recordset")
oRs.Open Sql,oConn,1,1'Cari tabel yang membuka hotel sama dengan variabel Kota
oRs.pagesize=10'Sepuluh catatan adalah satu halaman
PageCounts=oRs.pagecount' untuk mengetahui berapa banyak halaman yang akan dihasilkan, gunakan dalam satu lingkaran untuk menghasilkan
Dim fs' mendefinisikan objek file fso
Redupkan folder' nama folder tempat halaman statis disimpan
Dim Filestart' mendefinisikan awalan untuk menghasilkan file htm
Setel fs=Server.CreateObject("Scripting.FileSystemObject")
Redupkan saya
for i=1 to PageCounts' mulai menghasilkan halaman dalam satu lingkaran, yaitu paging dihasilkan.
halaman=i
oRs.absolutepage=i'nomor halaman
rowcount=oRs.pagesize'Jumlah catatan pada halaman saat ini
folder=server.mappath("CityHtml")
if (fs.FolderExists(folders)) maka tentukan apakah folder tersebut ada
kalau tidak
fs.CreateFolder(folders)' membuat folder CityHtml jika tidak ada
berakhir jika
jika i=1 maka
Filestart=HtmlStartName'Jika ini adalah halaman pertama, tentukan nama file dan berikan nama nilainya
kalau tidak
Filestart=HtmlStartName&i'Jika halaman kedua adalah beijing+1, misalnya jika ada dua halaman, i sama dengan 2, maka itu adalah beijing2.htm dan seterusnya...(akhiran .htm ditambahkan di akhir)
berakhir jika
File redup mendefinisikan variabel nama file teks yang dihasilkan
Redupkan variabel nama jalur file yang ditentukan
files=Filestart&".txt"'nama file ini
filez=folders&""&"file jalur file teks
'Hapus file
Redupkan file periksa'memeriksa apakah file teks sudah ada, jika sudah, hapuslah
checkfile=server.mappath("CityHtml"&Filestart&".htm")'Periksa apakah file htm sudah ada, jika sudah, hapuslah
if (fs.FileExists(checkfile)) lalu'Periksa apakah file htm sudah ada, jika sudah, hapus
Redupkan objek file df'define *hapus file menggunakan*
Setel df=fs.GetFile(checkfile)'mendefinisikan file yang akan dihapus
df.delete' hapus file
berakhir jika akhir penghakiman
Dim ts' mendefinisikan objek file penulisan
set ts = fs.createtextfile(filez,true) 'Aktifkan penulisan konten file**Saya cukup menulis nama hotel dan tampilan halaman nomor statis di teks**
ts.write("<Html><Head><Title>Generate"&City&"City Hotel</Title>"&vbcrlf)' Setelah itu, konten file utama akan dibuat dan menggunakan Response.write
ts.write("<META http-equiv=Jenis Konten content=teks/html; charset=gb2312>"&vbcrlf)
ts.write("<meta name=kata kunci content="&city&"hotel>"&vbcrlf)
ts.write("<link href='/Style/style.css' rel='stylesheet' type='text/css'></head><body topmargin=0>"&vbcrlf)
ts.Write("<LEBAR TABEL=760 spasi sel=0 bantalan sel=0 align=center>"&vbcrlf&_
"<TR><TD lebar='100%'>"&vbcrlf)
'Mulai keluaran paging
'Saya tidak akan menjelaskan secara detail tentang prinsip program paging digital di sini. Teman-teman yang belum mengerti bisa mencarinya di Internet.
Redupkan halaman saat ini
Redupkan Halaman2'Variabel paging digital
Variabel penomoran halaman digital redup
jika halaman=1 maka
ts.write (" [Beranda] [Halaman Sebelumnya] ")
kalau tidak
ts.write (" <a href="&HtmlStartName&".htm"&" class=blue>[Beranda]</a> <a href="&HtmlStartName&Replace(halaman-1,1,"")&".htm"& " class=blue>Halaman sebelumnya</a> ")
berakhir jika
halaman2=(halaman-(mod halaman 10))/10
jika halaman2<1 maka halaman2=0
untuk s=halaman2*10-1 hingga halaman2*10+10
jika s>0 maka
jika s=cint(halaman) maka
ts.tulis (" <font color='#000000'>["& s & "]</font>")
kalau tidak
jika s=1 maka
ts.write (" <a href="&HtmlStartName&replace(s,1,"")&".htm"&" class=blue>["& s &"]</a>")
kalau tidak
ts.write (" <a href="&HtmlStartName&s&".htm"&" class=blue>["& s &"]</a>")
berakhir jika
berakhir jika
jika s=ors.jumlah halaman maka
keluar untuk
berakhir jika
berakhir jika
Berikutnya
jika cint(halaman)=ors.jumlah halaman maka
ts.write ("[halaman berikutnya] [halaman terakhir]")
kalau tidak
ts.write (" <a href="&HtmlStartName&page+1&".htm"&" class=blue>[halaman berikutnya]</a> <a href="&HtmlStartName&ors.pagecount&".htm"&" class=blue> [ Halaman terakhir]</a>")
berakhir jika
ts.write("</TD></TR>")
'Akhir dari keluaran paging
do while not ors.eof dan rowcount>0 'Keluarkan nama hotel
ts.write("<TR><TD width='100%'>"&oRs.Fields("Nama_China")&"</TD></TR>"&vbcrlf)
atauRs.movenext
rowcount=rowcount-1'Bila jumlah record pada halaman adalah -1 loop
ts.write("</Table></body></html>"&vbcrlf)
ts.tutup
set ts=nothing 'Lepaskan objek
Dim EditFile' mendefinisikan penulisan ulang variabel file
Setel EditFile = fs.GetFile(filez)'Setel objek file penulisan ulang
EditFile.name= left(EditFile.name,len(EditFile.name)-4)&".htm" 'Tulis ulang file teks ke htm
generasi loop berikutnya berakhir (generasi paging)
set EditFile=nothing 'Lepaskan objek
set fs=nothing'lepaskan objeknya
jika err.number<>0 maka 'Tangani kesalahan yang dihasilkan
Response.write(City&"Terjadi kesalahan yang tidak diketahui saat memperbarui <A href=ToHtml.asp?City="&City&"&HtmlName="&HtmlStartName&">Perbarui ulang</A>")
kalau tidak
Response.Write(Kota&"Pembaruan hotel selesai"&Sekarang())
berakhir jika
%>