XMLHttpRequest Methods
Method abort() digunakan untuk menghentikan request yang sedang berjalan. Method ini sangat berguna jika anda memperhitungkan lama waktu koneksi, misalnya jika waktu koneksi melebihi rentang waktu tertentu anda bisa menggunakan method abort() untuk menghentikan request secara prematur.
Anda dapat menggunakan method ini untuk memperoleh semua informasi dari semua header HTTP yang sedang diberikan oleh server. Misalnya set sebuah header akan terlihat seperti :
Date: Sun, 13 Nov 2005 22:53:06 GMT
Server: Apache/2.0.53 (Win32) PHP/5.0.3
X-Powered-By: PHP/5.0.3
Content-Length: 527
Keep-Alive: timeout=15, max=98
Connection: Keep-Alive
Content-Type: text/html
Method ini dapat digunakan untuk memperoleh isi dari begian sebuah header, sebagai contoh untuk memperoleh ukuran dari document yang sedang direquest, anda dapat menggunakan getResponseHeader("Content-Length").
Method ini merupakan method yang paling penting dan berguna pada XMLHttpRequest. Method ini digunakan untuk membuka koneksi dengan document yang ada di server. Dengan method ini anda memberitahukan kepada web server method apa yang digunakan untuk membuka file ("GET" atau "POST"). Sebagai catatan tidak semua argument pada method ini harus diisi, tergantung dengan situasi dan kebutuhan.
Method ini dapat digunakan untuk menentukan header pada saat melakukan request. Sebagai catatan, method ini hanya bisa dipanggil setelah method open digunakan dan sebelum method send dipanggil.
method ini digunakan untuk mengirim request ke server. Jika request dikirim secara asynchronous, maka response akan datang secepatnya. Jika tidak, response akan datang setelah response diterima oleh web browser. Parameter pada method ini tidak harus diisi, parameter ini sangat berguna untuk memproses HTML form dan memberikan anda untuk mengirim nilai dari element form ke web server.
Method abort() digunakan untuk menghentikan request yang sedang berjalan. Method ini sangat berguna jika anda memperhitungkan lama waktu koneksi, misalnya jika waktu koneksi melebihi rentang waktu tertentu anda bisa menggunakan method abort() untuk menghentikan request secara prematur.
Anda dapat menggunakan method ini untuk memperoleh semua informasi dari semua header HTTP yang sedang diberikan oleh server. Misalnya set sebuah header akan terlihat seperti :
Date: Sun, 13 Nov 2005 22:53:06 GMT
Server: Apache/2.0.53 (Win32) PHP/5.0.3
X-Powered-By: PHP/5.0.3
Content-Length: 527
Keep-Alive: timeout=15, max=98
Connection: Keep-Alive
Content-Type: text/html
Method ini dapat digunakan untuk memperoleh isi dari begian sebuah header, sebagai contoh untuk memperoleh ukuran dari document yang sedang direquest, anda dapat menggunakan getResponseHeader("Content-Length").
Method ini dapat digunakan untuk menentukan header pada saat melakukan request. Sebagai catatan, method ini hanya bisa dipanggil setelah method open digunakan dan sebelum method send dipanggil.
method ini digunakan untuk mengirim request ke server. Jika request dikirim secara asynchronous, maka response akan datang secepatnya. Jika tidak, response akan datang setelah response diterima oleh web browser. Parameter pada method ini tidak harus diisi, parameter ini sangat berguna untuk memproses HTML form dan memberikan anda untuk mengirim nilai dari element form ke web server.
Membentuk Object XMLHttpRequest
function getXMLHttpRequest(){
//jika user menggunak IE
if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
//user menggunakan browser selain IE
return new XMLHttpRequest();
}else {alert("Status : can not create XMLHttpRequest Object");}
}
Mengirim Request ke Server
var xmlhttp=getXMLHttpRequet();
function sendRequest(pageUrl,elementID){
var obj=document.getElementById(elementID);
var obj.innerHTML='loading... please wait';
if(xmlhttp.readyState==4 || xmlhttp.readyState==0){
xmlhttp.open("GET",pageUrl,true);
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
obj.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
}
Kode untuk hidden frame adalah sebagai berikut:
2. Teknik Cookie / Cache Control
Ketika
pertama kali membuka halaman suatu web pasti akan terasa lambat jika
dibandingkan ketika membukanya untuk yang kedua kali. Hal ini dikarenakan
ketika user mengakses web pertama kali, browser melakukan proses caching.
Proses ini bertujuan menyimpan informasi yang telah dibuka untuk disimpan di
browser. Untuk itulah ketika kita membuka halaman yang sama untuk yang kedua
kalinya maka akan terasa lebih cepat.
Penggunaan teknik pemanggilan AJAX
sering kali menyebabkan masalah. Untuk menanggulanginya kita bisa menambahkan no-cache
header supaya browser tidak dapat melakukan proses caching
(Cache-Control:no-cache).
3. Teknik HTTP Request
Teknik
ini memanfaatkan ActiveX Object (IE) atau objek JavaScript XMLHttpRequest
(Mozilla, Safari, Opera). Objek ini akan melakukan post-back ke server
dan menerima respon balik berupa data (bukan halaman) Semua proses tersebut
dilakukan di belakang layar sehingga user tidak dapat melihat proses kerjanya.
XMLHttpRequest merupakan metode yang paling banyak digunakan karena memiliki
dua kemampuan yang unik. Kemampuan yang pertama adalah kemampuan untuk me-load
isi data tanpa perlu mengubah keseluruhan isi halaman web. Kemampuan yang kedua
adalah memperbolehkan JavaScript melakukan pemanggilan secara asyncronous.
D.
KELEBIHAN
DAN KEKURANGAN
Di
antara berbagai keuntungan AJAX
adalah:
1. Penggunaan
bandwidth: Karena konten HTML dari halaman web dilakukan oleh browser itu
sendiri (menggunakan JavaScript yang merupakan bahasa pemrograman client-side),
maka halaman web yang dibuat menggunakan AJAX dapat di-load relatif lebih
cepat. Selain itu, karena tidak perlu adanya refresh untuk menampilkan data
yang lebih barn, maka bandwidth yang diperlukan untuk menampilkan informasi
melalui halaman web akan lebih sedikit dibandingkan jika tanpa menggunakan
AJAX.
2. Pemisahan
antara data, format, style, dan fungsi: Keuntungan lain dari AJAX adalah
pendekatan AJAX membuat programmer untuk memisahkan antara metode dan format
yang digunakan untuk penyampaian informasi melalui web. Penyusun halaman web
yang dipisahkan antara. lain:
·
Data mentah yang akan ditampilkan yang biasanya dibuat
dalam format XML atau bisa juga diletakkan di database server-side.
·
Format atau struktur halaman web. Biasanya dibuat
menggunakan HTML atau XHTML yang kemudian diolah menggunakan Dynamic
Manipulation di DOM.
·
Elemen style halaman web. Bagian ini mendeskripsikan
bagaimana tampilan halaman web, dari mulai font hingga metode penampilan
gambar. Style ini biasanya di-embed ke halaman web atau direferensikan melalui
file .css (cascading style sheet).
Fungsionalitas
halaman web, biasanya terdiri dari JavaScript (DHTML), HTTP standar, komunikasi
XMLHttp, dan bahasa pemrograman server-side.
Dengan demikian, mau tidak mau programmer akan menjadi lebih teratur dalam
memprogram dan cenderung tidak kacau dalam membuat aplikasi web. Walaupun
demikian AJAX juga memiliki beberapa kerugian,
seperti:
1. Integrasi
browser: Karena konten halaman menganut prinsip asinkron, di mana data bisa
di-update tanpa halaman di-refresh, maka perubahan tampilan tidak tercatat di
bagian history dari browser. Jadi ketika Anda mengklik tombol Back, yang muncul
bukan tampilan seperti sebelum mengeksekusi kode AJAX, namun malah halaman
sebelumnya.
2. Kekurangan
lainnya adalah kesulitan bagi seorang user untuk melakukan bookmark/ favorite
pada bagian tertentu dari halaman web.
3. Waktu respon
yang kemungkinan bisa membingungkan user yang tidak berpengalaman menggunakan
aplikasi AJAX. Jika setting waktu respon tidak tepat, user bisa mengira halaman
yang diaksesnya sedang hang.
4. Search
engine optimization: Karena konten di-generate menggunakan JavaScript, search
engine tidak bisa mengindeksnya sehingga mengurangi efektivitas halaman
ditinjau dari SEO.
5. Terlalu
mengandalkan JavaScript: AJAX menggunakan JavaScript, yang kadang
diimplementasikan secara berbeda di berbagai browser atau verse tertentu dari
sebuah browser. Karena. itu sering kale sebuah website yang mengandung
JavaScript harus dites menggunakan berbagai jenis browser untuk memastikan
tampilannya tidak ada yang salah, begitu juga dengan AJAX. Namun mengingat
browser sekarang seperti Mozilla dan IE 7 menggunakan lapisan abstraksi semisal
JavaScript Framework, maka kekurangan ini sepertinya bisa ditanggulangi di masa
depan.
6. Alat bantu
pemrograman berupa IDE (integrated development environment) untuk JavaScript
sangatlah jarang dan langka. Anda bisa menggunakan beberapa tool, seperti
Firebug, IE Developer toolbar, dan Venkman.
7. Termasuk
kelemahan JavaScript adalah apabila user men-disable JavaScript di browser-nya,
maka AJAX tidak akan bisa digunakan.
8. Web
analytics: Berbagai solusi web analytic biasanya memiliki anggapan bahwa sebuah
halaman barn di-loading tiap kali konten di-update ke user. Mengingat AJAX
mengubah para-digma seperti ini, maka programmer harus meng-atur peletakan kode
web analytic sehingga proses tracking akan lebih baik.
Teknologi AJAX juga
memiliki batasan yang harus ilij)erhatikan oleh para programmer ketika membuat
I ui laman web berbasis AJAX:
1. Kode script
dan sumber data (baik XML atau plain text) harus berasal dari nama domain yang
lama. Hal ini merupakan kebijakan dari browser untuk menghindari adanya masalah
security. Namun Anda bisa mengakah hal ini dengan menggunakan skrip server
side. Contoh hal ini akan Anda lihat di Bab 4 ketika membuat aplikasi Google
Suggest yang merupakan fitur pencarian live search dari Google.
2. Browser
keluaran Microsoft Internet Explorer 5 dan 6 menggunakan ActiveX untuk
mengimplementasikan XMLHttpRequest. Walaupun setting default tidak menyebabkan
masalah, namun jika settingnya diubah, user bisa tidak dapat mengakses AJAX
(tapi ini sudah diperbaiki di browser Internet Explorer 7). Karena itu Anda
harus memastikan bahwa user yang hendak membuka halaman web Anda sudah memenuhi
persyaratan browser-nya.
3. Browser-browser
tua clan browser khusus (seperti browser di handphone dan lynx) tidak dapat
mengakomodasi penggunaan objek XMLHttpRequest, sehingga halaman yang
menggunakan AJAX tidak bisa diakses.
4. Jika
pengunjung men-disable JavaScript, halaman dengan kode AJAX tidak akan bisa
dilihat.
5. Perlu waktu
bagi user untuk memahami tentang perbedaan AJAX dengan halaman web konvensio
Tidak ada komentar:
Posting Komentar