Pertama -tama, mari kita lihat proses eksekusi halaman ASP
1. IIS menemukan file ASP dan mengirimkannya ke mesin ASP (biasanya ASP.DLL) pemrosesan.
2. Mesin membuka file ASP ini dan menemukan konten antara <%dan%>. Hanya konten dalam blok skrip yang dianalisis oleh mesin, dan konten lainnya dimasukkan di antara blok skrip sebagai karakter yang tidak berarti. Penting untuk menjelaskan bahwa pada kenyataannya, isi analisis lebih dari itu. Jika Anda membaca banyak program, Anda juga akan tahu bahwa beberapa atribut runat ditandai sebagai objek <BOMPERNT> Server.
3. Script dalam blok skrip mesin.
<%
Redup i
Untuk i = 1 hingga 5
%> Halo dunia!
< % NEXT %>
Mesin tidak menganalisis blok skrip ini secara terpisah, tetapi membuat kesalahan sintaks di kedua blok skrip. Jadi kami mendapatkan kesimpulan berikut: Tidak semua skrip non -server akan dikirim ke klien. Server tidak boleh khawatir tentang pelaksanaan skrip klien, tetapi Anda dapat mengeluarkan skrip klien yang berbeda melalui skrip server.
4. Mesin terakhir menghasilkan aliran teks, atau hasil eksekusi dari skrip. Browser klien ditampilkan pada halaman.
< %... %> dan <skrip runat = server> ... </script>
Mereka adalah skrip server -sisi dan diproses dan dieksekusi secara bersamaan. Ketika mereka mengeksekusi, mereka secara keseluruhan.
< %... %> dan <bahasa skrip = ...> ... </script>
Yang pertama adalah skrip server, yang terakhir adalah skrip klien. Yang pertama dieksekusi terlebih dahulu, dan yang terakhir dieksekusi.
Bahkan, skrip keduanya dapat dieksekusi pada saat yang sama, tetapi ruangnya berbeda. Yang pertama harus dieksekusi secara logis terlebih dahulu. Pada saat yang sama, kami juga memiliki kesimpulan: dalam pelaksanaan halaman yang sama, skrip klien tidak dapat diumpankan kembali ke skrip server, yaitu, klien menelusuri buku pesan Anda dan mengirimkan pesan baru atau skrip klien apa pun nilai akuisisi tidak mungkin diproses dalam respons server yang sama.
Panggilan untuk komponen
Perhatikan bahwa skrip server dan skrip klien adalah skrip.
Jika XMLHTTP digunakan untuk halaman web meraih server (seperti mengumpulkan), itu akan dibuat di skrip server. klien.
Komponen ADODB.Connection digunakan untuk mengakses database. tidak diragukan lagi bahwa itu ada pada pelanggan pada pelanggan yang dibuat di skrip akhir.
Singkatnya, hal -hal yang kontradiktif dan masing -masing pihak memiliki karakteristik mereka sendiri. Hal -hal yang berbeda memiliki kontradiksi yang berbeda; mengerti jangan terlihat ...). Prinsip ini mengharuskan kita untuk mematuhi prinsip -prinsip analisis spesifik dari isu -isu spesifik. Oposisi menggunakan satu metode untuk menyelesaikan kontradiksi dari berbagai hal. Kuncinya dibuka, jenis gunung seperti apa dan jenis lagu apa yang sebenarnya.
Objek pembuatan skrip VBScript server menggunakan metode server.createObject (classname).
Kesalahan khas
<%
Fungsi tsize (b)
'Ini adalah fungsi khusus saya
Tsize = cina
fungsi akhir
%>
<A href = javascript: <%tsize ('variable')%>> klik di sini untuk menggunakan fungsi definisi saya </a>
Analisis Kesalahan:
Ini membingungkan perbedaan antara skrip server dan skrip klien. Selama eksekusi yang sebenarnya, kami akan menemukan bahwa klien tidak menerima kode apa pun seperti tsize, karena tsize adalah program di server, dan setelah mesin diproses (perhatikan bahwa pemrosesan fungsi mesin murni dipanggil untuk server Script, itu tidak akan menghilang, dan tidak mungkin untuk memainkan peran pada klien. Artinya, skrip klien tidak dapat secara langsung memanggil fungsi skrip server -side.
Bahkan, program ini salah dengan tata bahasa. Nah, ubah menjadi <%= tsize (variabel)%> Tidak ada kesalahan tata bahasa di skrip server -side. : Javascript: Cina, Cina, tidak dapat dieksekusi.
Efek skrip server pada skrip klien
Seperti disebutkan sebelumnya, skrip server dieksekusi secara logis dalam skrip klien sebelumnya, sehingga kode seperti itu layak:
<%
Redup i
Untuk i = 1 hingga 5
Response.write <script type = text/javascript> _
& Peringatan ('Halo Dunia! & I &') </script>
Berikutnya
%>
Tentang pelaksanaan respons.redirect dan javascript
Perhatikan bahwa penulisan kode berikut salah:
<%
Response.redirect index.asp
Response.write <script type = text/javascript> _
& peringatan ('Kesalahan Kata Sandi!') </script>
%>
Ini adalah kesalahan umum.
Alasannya terkait dengan penanganan dua baris kode. Dua baris kode tidak dapat bekerja pada saat yang sama.
Response.write adalah teks untuk klien.
Response.Redirect mengirimkan informasi header HTTP ke klien (apa informasi header HTTP? Jadi, misalnya, penulisan cookie klien adalah informasi header http. Browser, inilah mengapa kadang -kadang kami memodifikasi kabel server dan Modifikasi cookie yang salah, karena subjek telah mulai ditransmisikan, dan tidak diizinkan untuk mengirim informasi header HTTP. Tidak peduli berapa banyak konten yang telah ditulis dalam buffer, begitu responsnya. Redirect dipanggil, itu akan dipanggil dan akan dipanggil. Jika Anda secara dinamis melacak pelaksanaan program, kami juga akan menemukan bahwa setelah menelepon respons.
Jadi bagaimana contoh di atas dimodifikasi? Jika Anda tidak ingin memodifikasi index.asp untuk menambahkan prompt skrip, maka Anda hanya dapat memasukkan instruksi kemudi dalam skrip klien untuk dieksekusi, seperti ini:
<%
Response.write <script type = text/javascript> _
& peringatan ('!');
%>