kesedihan untuk Anda [Asli]
Dear Dr. GUI:
Saya punya pertanyaan tentang XML. Saya menerbitkan halaman ASP melalui XMLHTTP, mengirim data kembali sebagai HTML, dan melakukan object.innerHTML pada div, sel tabel, atau elemen apa pun.
Masalah yang saya alami adalah setelah saya membuat formulir di halaman server ASP dan mengirim formulir kembali sebagai HTML, semuanya berfungsi dengan baik. Tetapi saya juga ingin validasi halaman sisi klien, jadi saya memasukkan tautan halaman JScript ke dalam isi HTML respons yang saya rencanakan untuk dikirim kembali. Setelah melakukan ini, skrip tidak akan berjalan.
Ketika saya menyertakan referensi JScript src yang sebenarnya di halaman induk, itu berfungsi dengan baik. Apakah ini karena kode JScript tidak dimuat ke runtime? Apakah mungkin untuk merespons postingan XMLHTTP tanpa mengembalikan kode JScript dan membuatnya berfungsi? Bisakah fungsi JScript dibuat dengan cepat untuk halaman yang saya buat?
Cara lain yang belum saya coba lakukan adalah dengan memposting data XML melalui XMLHTTP, lalu mengirimkannya kembali sebagai data XML, dan kemudian menggunakan stylesheet XSL untuk mengubahnya. Saya kira mungkin untuk mendefinisikan fungsi JScript seperti itu. Namun pendekatan ini tampaknya terlalu rumit. Apakah Anda punya saran atau jawaban?
Terima kasih atas
balasan dari Dr.
Peter Sung
GUI:Ya, Peter, Anda dapat mengembalikan kode Microsoft JScript sebagai respons terhadap posting/dapatkan XMLHTTP dan mengeksekusi kode tersebut. Melakukan hal ini seperti mendapatkan sepotong kue dan memakannya nanti. Seperti yang Anda duga, cara terbaik untuk melakukan ini adalah dengan memanfaatkan stylesheet XSL. Ini mudah dilakukan setelah Anda mengembalikan semua tipe ke normal. Dr. GUI bahkan dapat memberikan contoh singkat. (Tentu saja, ada solusi lain. Selama respons berisi header dan karakter yang benar dalam urutan yang benar, browser akan menafsirkan respons sehingga respons berfungsi dengan baik. Anda dapat memanfaatkan penggabungan string untuk menghasilkan respons jika diperlukan. )
Di bawah Dalam contohnya, Dr. GUI menggunakan JScript untuk kode sisi klien dan VBScript (Microsoft Visual Basic Scripting Edition) di halaman ASP. Strategi yang diterapkan adalah ini: file XML hanya berisi data (dan referensi ke style sheet). File XSL berisi semua format HTML yang diperlukan untuk membentuk halaman lengkap (termasuk skrip yang ada). Halaman ASP pada dasarnya terdiri dari beberapa panggilan untuk membuat objek XMLHTTP, memuat file XML ke dalam objek (menggunakan style sheet implisit), dan menulis HTML yang dihasilkan ke aliran respons.
Untuk mencoba metode ini, ikuti langkah sederhana yang ditunjukkan di bawah ini. Gunakan Notepad untuk menyalin dan menempel serta menyimpan semua file di c:inetpubwwwroot.
1.
Buat file bernama books.xml yang berisi teks XML berikut. Catat referensi ke style sheet books.xsl. Selain itu, file ini hanya berisi data.
<?xml versi="1.0"?>
<?xml-stylesheet type="text/xsl" href="books.xsl" ?>
<katalog>
<id buku="bk101">
<author>Gambardella, Matthew</penulis>
<title>Panduan Pengembang XML</title>
</buku>
<id buku="bk102">
<author>Ralls, Kim</author>
<title>Hujan Tengah Malam</title>
</buku>
</katalog>
2.
Kemudian buat file bernama books.xsl yang berisi kode berikut. File ini adalah style sheet yang direferensikan oleh books.xml yang dibuat pada langkah 1. Ini berisi informasi yang diperlukan untuk memformat file XML di atas dengan benar ke dalam halaman HTML dan bahkan menyertakan skrip pada halaman HTML.
<?xml versi="1.0" pengkodean="UTF-8" ?>
<xsl:stylesheet versi="1.0"
xmlns:xsl=" http://www.w3.org/1999/XSL/Transform ">
<xsl:metode keluaran="html" indent="ya"/>
<xsl:templat pertandingan="/">
<html>
<kepala>
<title>Tes</title>
</kepala>
<bahasa skrip="JScript">
fungsi Uji_OnLoad()
{
var objXML = new ActiveXObject("MSXML2.DOMDocument");
objXML.async=false;
objXML.load("buku.xml");
peringatan(objXML.xml);
objXML=batal;
}
</skrip>
<tubuh onload="Uji_OnLoad()">
<batas tabel="1">
<xsl:untuk setiap pilih="katalog/buku">
<tr>
<td>
<xsl:nilai-dari pilih="penulis"/>
</td>
<td>
<xsl:nilai-dari pilih="judul"/></td>
</tr>
</xsl:untuk masing-masing>
</tabel>
</tubuh>
</html>
</xsl:templat>
</xsl:lembar gaya>
3.
Terakhir, buat file bernama books.asp yang berisi kode berikut. File ini hanya digunakan untuk membuat objek XMLHTTP, memuat file XML untuknya, dan menulis HTML yang dihasilkan ke aliran respons.
<%
redup sxh
Response.contentType = "teks/xml"
atur sxh = Server.CreateObject("MSXML2.XMLHTTP.3.0")
sxh.open "GET", " http://localhost/books.xml", salah
sxh.kirim
Respon.tulis sxh.teks respons
%>
4.
Buka browser Anda dan navigasikan ke http://localhost/books.asp .
5.
Anda melihat peringatan yang memperlihatkan data yang berisi books.xml. Hal ini dilakukan dengan skrip di file XSL. Anda juga akan melihat data diformat dengan rapi dalam tabel di halaman web. Ini dilakukan dengan kode XSL.