XMLHttpRequest merupakan metode request HTTP yang beroperasi di belakang layar (tanpa harus merefresh halaman web). Metode ini berwujud suatu obyek. Sehingga dalam hal ini AJAX merupakan konsep yang mendeskripsikan interaksi antara XMLHttpRequest (client side object) dengan server script seperti PHP, ASP dll. Sayangnya, XMLHttpRequest ini memiliki bentuk obyek yang berbeda dalam beberapa browser sehingga dalam penggunaannya perlu penanganan khusus yang disesuaikan dengan jenis browsernya. Sebagai contoh, dalam IE obyek tersebut dinyatakan sebagai ActiveX Control. Pada Firefox dan Safari, XMLHttpRequest dinyatakan sebagai Javascript Object. Pada aplikasi AJAX, pendeklarasian penggunaan XMLHttpRequest ini dilakukan dalam sebuah Javascript. Berikut ini adalah script yang digunakan untuk pendeklarasian penggunaan XMLHttpRequest
function membuatObyekXmlHttpRequest()
{
var xmlHttp;
// pengecekan apabila menggunakan IE
if(window.ActiveXObject)
{
try
{
// pendeklarasian penggunaan XMLHttpRequest di IE
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlHttp = false;
}
}
// jika browser menggunakan Firefox atau yang lain
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false;
}
}
Script di atas harus ada di dalam halaman web yang menggunakan AJAX.
Metode-metode pada XMLHttpRequest
Dalam obyek XMLHttpRequest terdapat beberapa metode yang digunakan untuk proses
request. Berikut ini beberapa diantaranya:
abort()
Untuk membatalkan request
open()
Untuk melakukan koneksi ke server secara asynchronous
send()
Untuk mengirim request
Keterangan:
Untuk metode open(), secara lengkap memiliki paramater-parameter yaitu
open("method","URL","async")
dengan parameter method adalah metode request HTTP yang digunakan yaitu POST atau GET. Parameter URL adalah nama URL yang akan dikoneksikan. Sedangkan parameter async dapat digantikan dengan true apabila koneksi dilakukan secara asynchronous atau
false apabila tidak secara asynchronous.
Ketika Anda menggunakan request secara asynchronous, proses request tidak akan berhenti meskipun response dari server belum diperoleh. Sedangkan apabila menggunakan request secara synchronous, maka proses request akan terhenti selama response belum diterima. Hal inilah yang menjadikan perbedaan dari kedua jenis request. Kedua jenis request tidak akan menjadi masalah apabila koneksi antara client dengan server sangat cepat. Akan tetapi untuk koneksi yang lambat, penggunaan request synchronous akan sangat mengganggu penggunaan aplikasi. Sebagai contoh, misalnya pada penggunaan aplikasi Google Suggest yang dapat Anda kunjungi di www.google.com/webhp?complete=1.
Google Suggest merupakan aplikasi web yang mampu memberikan saran untuk keyword pencarian situs web. Pada aplikasi tersebut terdapat suatu text box (untuk menulis keyword) yang apabila setiap kali Anda menulis sebuah karakter akan muncul drop down menu berisi list keyword saran. Apabila tipe request yang digunakan Google Suggest tersebut adalah secara synchronous, maka setelah Anda menuliskan sebuah karakter, Anda tidak bisa menuliskan karakter berikutnya yang lain (text box tidak bisa ditambahi karakter, alias freezing…), sampai response server diterima (muncul list keyword). Tentu saja hal ini akan sangat mengganggu user apabila koneksinya lambat karena text box akan sering mengalami freezing. Sedangkan pada kenyataannya aplikasi tersebut tidak demikian. Meskipun belum ada response atau list keyword saran belum muncul, Anda tetap bisa menambahkan karakter pada text box.
Properties XMLHttpRequest
Karena berbentuk object, maka XMLHttpRequest memiliki beberapa properties. Berikut ini
beberapa diantaranya yang sering digunakan untuk aplikasi AJAX.
Readystate
Menyatakan keadaan proses yang dilakukan obyek saat itu. Properties ini bernilai 0 s.d 4 (0: belum ada inisialisasi, 1: loading, 2: loaded, 3: interaktif, 4: selesai)
status
Menyatakan respon yang diterima dari server. Properties ini akan mengembalikan kode respon (dalam bentuk numerik) seperti yang telah dijelaskan pada bab dasar-dasar respon. Misalnya 404 apabila file tidak
ditemukan.
responseXML
Mengembalikan respon dalam format XML
statustext
Properti ini mirip dengan properti status, namun yang dikembalikan adalah keterangan statusnya (bukan nilai numeriknya).
Misalkan responnya 404, akan mengembalikan statustext: Not Found
0 comments:
Post a Comment