Seri Kuliah ASP (12) Mengirim Konten ke Browser
Penulis:Eve Cole
Waktu Pembaruan:2009-05-30 19:59:00
Saat memproses skrip ASP, teks atau grafik apa pun yang tidak terdapat dalam pembatas ASP atau tag <SCRIPT> akan dikembalikan ke browser. Konten dapat dikirim ke browser secara eksplisit dengan menggunakan objek Response.
Mengirim Konten Untuk mengirim konten ke browser dari dalam pembatas atau prosedur ASP, Anda dapat menggunakan metode Tulis pada objek Respon. Misalnya, pernyataan berikut dapat mengirimkan salam yang berbeda tergantung pada apakah pengguna telah mengunjungi halaman ini:
<%
Jika FirstTime = Benar Maka
Response.Tulis "<H3 ALIGN=CENTER>Selamat datang di Halaman Ikhtisar</H3>"
Kalau tidak
Response.Tulis "<H3 ALIGN=CENTER>Selamat Datang Kembali di Halaman Ikhtisar</H3>"
Akhiri Jika
%>
Di luar prosedur, Anda tidak perlu menggunakan Response.Write untuk mengirim konten kembali ke pengguna. Konten yang tidak ada di dalam pembatas skrip dikirim langsung ke browser, yang memformat dan menampilkannya. Misalnya, proses skrip berikut memiliki keluaran yang sama dengan skrip di atas:
<H3 SEJAJAR=PUSAT>
<% Jika Pertama Kali Lalu %>
Selamat datang di Halaman Ikhtisar.
<%Lain%>
Selamat Datang Kembali di Halaman Ikhtisar.
<% Selesai Jika %>
</H3>
Gunakan perintah skrip campuran dan HTML saat Anda perlu mengembalikan keluaran hanya sekali atau saat Anda perlu menambahkan pernyataan ke teks HTML yang ada. Gunakan Response.Write ketika Anda tidak ingin memisahkan pernyataan dengan pembatas atau ketika Anda ingin membuat string yang dikembalikan ke browser. Misalnya, Anda dapat membuat string teks untuk membuat baris tabel menggunakan nilai yang dikembalikan dari tabel HTML:
Respon.Tulis "<TR><TD>" & Permintaan.Form("Nama Depan") _
& "</TD><TD>" & Permintaan.Formulir("Nama Belakang") & "</TD></TR>"
Mengatur jenis konten Ketika server web mengembalikan file ke browser, server juga memberitahukan browser jenis konten yang terkandung dalam file. Hal ini memungkinkan browser untuk memutuskan apakah dapat menampilkan file itu sendiri atau harus memanggil aplikasi lain. Misalnya, jika server jaringan mengembalikan tabel Microsoft Excel, browser harus memanggil salinan Microsoft Excel untuk menampilkan halaman tersebut. Server web mengidentifikasi tipe file dengan memetakan ekstensi file ke tabel tipe MIME.
Anda dapat menggunakan properti ContentType objek Respon untuk mengatur string tipe konten HTTP untuk konten yang dikirim ke pengguna. Misalnya, perintah berikut menetapkan tipe konten untuk definisi saluran:
<% Response.ContentType = "aplikasi/x-cdf" %>
Untuk informasi lebih lanjut tentang saluran, lihat "Membuat Saluran Dinamis" di topik ini.
Tipe konten umum lainnya adalah text/plain (untuk dikembalikan sebagai konten teks dan bukan pernyataan HTML yang ditafsirkan), text/gif (untuk gambar GIF), dan video/quicktime (untuk film dalam format Apple QuickTime®). Seperangkat tipe MIME standar telah ditentukan dan didukung oleh server Web atau browser Web. Untuk melihat tipe konten apa yang didukung server Web Microsoft Anda, gunakan Internet Services Manager untuk membuka halaman properti situs Web Anda, klik tab Header HTTP, lalu klik tab Tipe File.
Redirect browser Gunakan metode Redirect untuk mengarahkan browser ke URL lain alih-alih mengirimkan konten ke pengguna. Misalnya, jika Anda ingin mengonfirmasi bahwa pengguna telah memasuki aplikasi Anda dari halaman beranda sehingga mereka dapat menerima ID pelanggan, Anda dapat memeriksa apakah mereka memiliki nomor ID pelanggan; jika tidak, Anda dapat mengarahkan mereka ke halaman beranda;
<%
Jika Sesi("ID Pelanggan") = 0 Maka
Respon.Redirect "homepage.asp"
Akhiri Jika
%>
Kecuali jika buffer sudah terbuka, Anda harus mengarahkan ulang browser sebelum konten atau header apa pun dikembalikan ke browser. Menempatkan pernyataan Response.Redirect di bagian atas halaman dan sebelum tag <HTML> memastikan bahwa tidak ada konten yang dikembalikan ke browser. Jika Anda menggunakan Response.Redirect setelah mengembalikan konten atau header ke browser, Anda akan melihat pesan kesalahan.
Jika Anda menggunakan Response.Redirect di tengah halaman, gunakan dengan properti Response.Buffer, seperti yang dijelaskan di bagian berikut.
Konten yang Disangga Secara default, server Web mengembalikan hasil pemrosesan HTML dan skrip saat memproses halaman ASP. Namun, Anda dapat mengatur properti Buffer dari objek Respon untuk memproses semua perintah skrip server pada halaman sebelum mengirimkan apa pun ke pengguna.
Anda dapat menggunakan teknik buffering untuk menentukan suatu titik dalam proses pemrosesan halaman yang tidak ingin Anda kirimkan kontennya sebelum titik tersebut ke pengguna. Anda juga dapat menggunakan metode Redirect objek Respon untuk mengarahkan pengguna ke halaman lain, atau menggunakan metode Clear objek Respon untuk menghapus buffer dan mengirim konten berbeda ke pengguna. Contoh di bawah ini menggunakan kedua metode tersebut.
<%
'Aktifkan buffering. Pernyataan ini harus muncul sebelum tag <HTML>.
Respon.Buffer = Benar %>
<html>
<tubuh>
.
.
.
<%
Jika Permintaan("FName") = "" Lalu
Respon. Jelas
Respons.Redirect "/samples/test.html"
Kalau tidak
Respon.Permintaan Tulis("FName")
Akhiri Jika
%>
</tubuh>
</html>
Anda juga dapat menggunakan Response.Buffer untuk mencegah server Web mengembalikan header HTTP sebelum skrip memodifikasinya. Beberapa properti dan metode, seperti Response.Expires dan Response.Redirect, mengubah header HTTP.
Ketika properti Buffer diatur dalam skrip dan metode Flush tidak dipanggil, server akan mempertahankan permintaan Keep-Alive yang dikeluarkan oleh pengguna. Mengembangkan kebiasaan skrip ini dapat membantu meningkatkan kinerja server karena server tidak harus membuat koneksi baru untuk setiap permintaan pengguna (dengan asumsi bahwa server, pengguna, dan server proxy mendukung persyaratan Keep-Alive). Namun, salah satu kelemahan potensial dari pendekatan ini adalah bahwa buffer tidak menampilkan respons apa pun kepada pengguna sampai mereka memproses semua skrip dalam file ASP saat ini. Untuk skrip yang lebih panjang dan rumit, pengguna mungkin terpaksa menunggu lama sebelum melihat halaman ini.
Secara default, buffering dinonaktifkan untuk aplikasi ASP. Anda dapat menggunakan Internet Services Manager untuk mengaktifkan buffer untuk seluruh aplikasi ASP.
Memungkinkan server proxy untuk menyimpan halaman dalam cache Melalui server proxy, aplikasi dapat mengirimkan halaman ke pengguna. Server proxy meminta halaman web dari situs Web atas nama browser pengguna. Server proxy menyimpan cache halaman HTML sehingga permintaan berulang untuk halaman yang sama dapat dikembalikan ke browser dengan cepat dan efisien. Server proxy melakukan permintaan dan cache halaman web, serta meringankan beban pada jaringan dan server web.
Meskipun caching berfungsi dengan baik untuk halaman HTML, namun tidak berfungsi dengan baik untuk halaman ASP yang berisi informasi yang dihasilkan secara dinamis. Misalnya, pelaporan kondisi pasar saham atau daftar inventaris yang menunjukkan volume bisnis yang besar memerlukan informasi segera. Informasi dari satu jam yang lalu sangat tidak akurat saat ini. Jika aplikasi mengembalikan informasi pribadi, misalnya halaman beranda yang disesuaikan, diharapkan pengguna tidak dapat melihat informasi pribadi pengguna lain.
Secara default, server Proxy Perintah ASP itu sendiri tidak dapat melakukan cache halaman ASP (walaupun server ini menyimpan gambar, bitmap, aplikasi kecil, dan referensi lain pada halaman cache). Anda dapat menggunakan properti Response.CacheControl untuk mengatur bidang header HTTP Kontrol Cache untuk mengizinkan cache halaman tertentu. Nilai default Response.CacheControl adalah string "Private", yang mencegah server proxy menyimpan halaman ini dalam cache. Untuk mengizinkan cache, setel bidang header kontrol cache ke Publik:
<% Response.CacheControl = "Publik" %>
Karena header HTTP harus dikirim ke browser atau server proksi sebelum konten halaman apa pun dikirim, Anda dapat mengatur properti Response.CacheControl atau menggunakan Response.Buffer untuk menyimpan halaman dalam cache sebelum tag HTML apa pun.
Bidang header Kontrol Cache adalah bagian dari spesifikasi HTTP 1.1. Halaman ASP tidak dapat di-cache pada server proksi yang hanya mendukung HTTP 1.0 karena tidak ada kolom header kedaluwarsa yang dikirim.
Mencegah browser melakukan cache halaman. Setiap versi browser memiliki spesifikasinya sendiri mengenai apakah akan melakukan cache halaman. Untuk mencegah browser menyimpan halaman ASP dalam cache, gunakan Response.Expires untuk menyetel header kedaluwarsa:
<% Respon. Kedaluwarsa = 0 %>
Nilai 0 memaksa halaman yang di-cache menjadi kedaluwarsa. Karena header HTTP harus dikirim ke browser sebelum halaman apa pun dikirim, halaman tersebut dapat di-cache dengan menempatkan atribut Response.Expires sebelum tag HTML atau dengan menggunakan Response.Buffer.
Buat saluran dinamis
Internet Explorer 4.0 memiliki fitur baru yang dapat digunakan perencana Web untuk menggabungkan halaman Web dengan tema umum ke dalam suatu saluran. Di browser, saluran ditampilkan pada bilah judul saluran; pengguna mengakses saluran dengan mengklik ikon. Saluran diperbarui secara otomatis di latar belakang; pengguna tidak perlu mengunjungi situs untuk mengunduh halaman terbaru di browser mereka. Saluran memberi pengguna jalur yang cepat dan langsung untuk menelusuri sekumpulan halaman Web terkait, dan halaman Web ini diperbarui secara otomatis.
Dengan menggunakan ASP, Anda dapat menulis skrip untuk mengumpulkan preferensi pengguna dan kemudian membuat saluran secara dinamis. File definisi saluran (.cdf) menetapkan organisasi dan urutan konten saluran. Perintah dalam file .cdf menggunakan sintaksis yang sama dengan markup HTML, sehingga lebih mudah dipahami dan dibuat dari skrip. Saat menulis skrip ASP untuk membuat file definisi saluran, skrip tersebut menggunakan ekstensi .cdx. Ketika ASP membaca file dengan ekstensi .cdx, tipe konten application/x-cdf dikirim secara otomatis, yang memberitahu browser untuk menggunakan definisi saluran untuk menafsirkan byte. Jika Anda tidak menggunakan .cdx sebagai ekstensi, skrip harus mengatur tipe konten secara manual ke application/x-cdf menggunakan Response.ContentType.
Berikut ini contoh cara menggunakan saluran. Formulir HTML berikut meminta pengguna untuk memilih saluran. Saat dikirimkan, formulir memanggil skrip dalam file .cdx untuk membuat definisi saluran.
<P> Pilih saluran yang Anda inginkan </P>
<METODE BENTUK="POST" ACTION="chan.cdx">
<P><INPUT TYPE=CHECKBOX NAME=Film> Film
<P><INPUT TYPE=CHECKBOX NAME=Olahraga> Olahraga
<P><INPUT TYPE="KIRIM" NILAI="KIRIM">
</BENTUK>
Skrip di Chan.cdx membuat definisi saluran berdasarkan nilai tabel yang dikirimkan bersama permintaan.
<% Jika Permintaan.Form("Film") <> "" Lalu %>
<SALURAN>
pernyataan definisi saluran untuk halaman film
</SALURAN>
<% Selesai Jika %>
<% Jika Permintaan.Form("Olahraga") <> "" Lalu %>
<SALURAN>
pernyataan definisi saluran untuk halaman olahraga
</SALURAN>
<% Selesai Jika %>
Mengirim file ke server Browser dapat menggunakan aplikasi Posting Acceptor untuk mengirim file ke server Web. Saat Penerima Postingan mengunggah file, ia mengirimkan kolom formulir berkode URL yang mencantumkan nama dan lokasi setiap file yang diterima. URL pemrosesan pos dapat ditambahkan ke skrip yang mengunggah file untuk memanggil skrip ASP guna memproses nama bidang ini. Misalnya, Anda dapat menulis skrip yang secara otomatis mengirimkan email ke administrator sistem dengan nama dan lokasi file.