Direkomendasikan: Tentang pemisahan kode dan halaman ASP Untuk menghindari kesulitan pemeliharaan yang disebabkan oleh kesalahpahaman kode TML program ASP, artikel ini memperkenalkan metode untuk menggunakan templat untuk memisahkan program dan halaman untuk membuat pemrograman lebih mudah. Saat menggunakan ASP untuk membuat situs, file ASP sering muncul, kode program dan HTM
Ada banyak manfaat untuk mengonversi halaman dinamis untuk menghasilkan file HTML statis, seperti menghasilkan halaman web HTML kondusif untuk dimasukkan oleh mesin pencari (terutama untuk halaman yang menerima parameter dinamis). Saat mengakses meja depan, itu dipisahkan dari akses data, mengurangi tekanan pada akses basis data dan mempercepat pembukaan halaman web.
Tentu saja, semuanya memiliki kelebihan dan kekurangannya. Menghasilkan halaman HTML secara tidak terlihat mengkonsumsi banyak ruang disk untuk menyimpan file statis ini. Selain membaca dan menulis database selama proses pengeditan, Anda juga perlu membaca dan menulis disk server. Perubahan gaya halaman harus meregenerasi semua file HTML, dll.
Misalnya, banyak mesin pencari dapat mengirimkan daftar alamat halaman situs web. Dimasukkannya file dinamis tidak lagi menjadi masalah (seperti Google Sitemap). Kita harus mengukur dan memahami keuntungan dan kerugian sendiri, tetapi tidak peduli apa, kita masih perlu tahu cara beroperasi. Di sini saya akan mengutip artikel orang lain untuk menjelaskan beberapa ide generasi umum untuk referensi Anda.
1. Contoh berikut secara langsung menggunakan FSO untuk menulis kode HTML ke dalam file dan kemudian menghasilkan format file .html. Ini yang paling primitif. Keuntungannya adalah sederhana, dan kerugiannya adalah bahwa modifikasi halaman tidak nyaman. Tempat yang biasanya saya gunakan adalah menggunakannya untuk menghasilkan seluruh file parameter situs. (Biasanya, situs web seperti judul, nama, dll. Disimpan dalam database. Saya menghasilkan config.asp untuk menyimpan panggilan variabel ini untuk menghindari akses yang sering ke database)
| Berikut ini adalah konten yang dikutip: <% FileName = test.htm Jika permintaan (tubuh) <> lalu atur fso = server.createObject (scripting.filesystemObject) Setel htmlwrite = fso.createTextFile (server.mappath (& filename &))) htmlwrite.write < html> < head> < title> & request.form (judul) & </title> </head> htmlwrite.write < body> output judul konten: & request.form (judul) & < br/> output konten tubuh: & request.form (body) & </body> </html> htmlwrite.close atur fout = tidak ada atur fso = tidak ada akhiri jika %> < Form Name = Form Metode = Post Action => < Nama input = nilai judul = ukuran judul = 26> <BR> < name TextArea = Tubuh> Tubuh </TextArea> <BR> <BR> < Jenis Input = Kirim Nama = Kirim Nilai = Hasilkan HTML> </bentuk> |
2. Namun, sangat tidak nyaman untuk menghasilkan file HTML sesuai dengan metode di atas. Metode kedua adalah menggunakan teknologi template untuk menggantikan nilai kode khusus dalam templat dengan nilai yang diterima dari formulir atau bidang basis data, lengkapi fungsi template, dan hasilkan file HTML dengan semua kode templat yang akhirnya diganti. Teknologi ini lebih sering digunakan, dan sebagian besar CMS menggunakan metode ini.
| Berikut ini adalah konten yang dikutip: template.htm '// file template < html> < kepala> < title> $ title $ by cuoxin.com </title> </head> < Tubuh> $ tubuh $ </tubuh> </html> TestTemplate.asp '// menghasilkan html <% Redup fso, htmlwrite Redup strtitle, strcontent, strout '// Buat objek sistem file Atur fso = server.createObject (scripting.filesystemObject) '// buka file template web dan baca konten template Setel htmlwrite = fso.opentextFile (server.mappath (template.htm)) strout = f.readall htmlwrite.close strtitle = judul halaman web yang dihasilkan strcontent = konten halaman web yang dihasilkan '// Ganti tag di templat dengan konten nyata strout = ganti (strout, $ title $, strtitle) strout = ganti (strout, $ body $, strcontent) '// Buat halaman statis yang akan dihasilkan Setel htmlwrite = fso.createTextFile (server.mappath (test.htm), true) '// Tulis konten ke halaman web htmlwrite.writeLine Strout htmlwrite.close Response.write halaman statis dihasilkan dengan sukses! '// Lepaskan objek sistem file Setel htmlwrite = tidak ada atur fso = tidak ada %> |
3. Metode ketiga adalah menggunakan XMLHTTP untuk mendapatkan konten HTML yang dihasilkan oleh halaman dinamis, dan kemudian menggunakan ADODB.Stream atau Scripting.FilesystemObject untuk menyimpannya ke dalam file HTML. Temukan sepotong kode untuk menghasilkan html untuk xmlhttp.
| Berikut ini adalah konten yang dikutip: <% 'Fungsi umum '1. Masukkan Alamat Halaman Web Tujuan URL, dan nilai pengembalian GetHttppage adalah kode HTML dari halaman web tujuan function getHttppage (URL) redup http Setel http = server.CreateObject (msxml2.xmlhttp) Http.open get, url, false Http.send () Jika http.readystate <> 4 lalu fungsi keluar akhiri jika getHttppage = bytestoBstr (http.responseBody, GB2312) atur http = tidak ada Jika err.number <> 0 maka err.clear fungsi akhir '2. Konversi Lanma, langsung hubungi halaman web dengan karakter Cina dengan xmlhttp, Anda akan mendapatkan lanma, yang dapat dikonversi melalui komponen adodb.stream. Fungsi bytestoBstr (body, cset) redup objstream Set ObjStream = Server.CreateObject (adodb.stream) objstream.type = 1 objstream.mode = 3 objstream.open Objstream.write Body objstream.position = 0 objstream.type = 2 objstream.charset = cset BytestoBstr = objstream.readtext objstream.close atur objstream = tidak ada Fungsi akhir txturl = server.mappath (../ index.asp) stext = getHttppage (txturl) Set FileObject = Server.CreateObject (Scripting.FilesyStemObject) FileName = ../index.htm Set OpenFile = FileObject.opentextFile (server.mappath (fileName), 2, true) 'true dibuat dengan sendirinya jika tidak ada OpenFile.WriteLine (Stext) Setel OpenFile = tidak ada %> < Script> Peringatan (pembuatan halaman web statis selesai); history.back (); </skrip> |
Ringkasan, ketiga metode ini adalah metode yang paling umum digunakan untuk menghasilkan file HTML. Saya lebih suka menggunakan metode ketiga karena perubahan halaman sangat nyaman. Bahkan jika halaman dinamis berubah, itu bagus. Cukup gunakan xmlhttp untuk membaca dan menghasilkannya sekali lagi.
Bagikan: Desain Kompatibilitas Cache untuk Aplikasi Web Setelah melewati proxy, karena lapisan perantara ditambahkan antara klien dan layanan, server tidak dapat secara langsung mendapatkan IP klien, dan aplikasi sisi server tidak dapat langsung kembali ke klien melalui alamat penerusan. Namun, dalam informasi header http dari permintaan penerusan, http_x ditambahkan