AJAX – Asynchronous JavaScript And XML (PART 1)

Istilah AJAX technology belakangan ini sering terdengar dalam pengembangan aplikasi web, berikut sedikit gambaran tentang AJAX dan cara memanfaatkannya dalam pengembangan web.
AJAX pertama kali di perkenalkan oleh Jesse James Garrett pada tulisannya yang berjudul AJAX: A New Approach To Web Applications.
AJAX bukan merupakan bahasa pemrograman baru, namun hanya sebuah tehnik pemanfaatan Javascript dalam mengontrol class object XMLHttpRequest untuk me-Refresh / mengupdate content dalam halaman web tanpa melakuan Reload keseluruhan halaman web seperti pada Metoede Tradisional, AJAX sendiri merupakan singkatan dari “Asynchronous JavaScript And XML”.

Kelebihan utama AJAX sendiri terletak pada pemanfaatan class object XMLHttpRequest untuk berkomunikasi dengan Web Server dalam melakukan request content, berikut pengunaan Javascript dalam membuat class object XMLHttpRequest :

Untuk membuat class object pada browser Firefox, Safari, IE7, Mozila, dsb gunakan sintaks berikut:

[php]

oAJAX = new XMLHttpRequest();

[/php]

Untuk membuat class object pada browser IE versi terbaru.

[php]

oAJAX= new ActiveXObject(‘MSXML2.XMLHTTP’);

[/php]

Untuk membuat class object pada browser IE versi lama.

[php]

oAJAX = new ActiveXObject(‘Microsoft.XMLHTTP’);

[/php]

Untuk dapat berjalan pada semua browser (Cross Browser), kita dapat mengabungkan kesemua script tersebut kedalam sebuah function pembuat class object XMLHttpRequest seperti berikut :

[php]

function createRequest(){
var oAJAX = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
oAJAX = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
oAJAX = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
oAJAX = false;
}
}
@end @*/

if (!oAJAX && typeof XMLHttpRequest != ‘undefined’) {
oAJAX = new XMLHttpRequest();
}
if (!oAJAX){
alert("Error saat membuat XMLHttpRequest!");
}else{
alert("XMLHttpRequest sukses dibuat!");
}
return oAJAX;
}

[/php]


Mula-mula function diatas akan mencoba membuat class object XMLHttpRequest dengan sintaks IE versi terbaru, jika gagal maka akan di coba mengunakan sintaks pd IE versi sebelumnya jika masih gagal maka akan di coba mengunakan sintaks pembuatan pada browser Mozila, Firefox dsb.
Dengan pengabungan diatas di pastikan class object XMLHttpRequest akan terbentuk dan function akan mengembalikan class object yang telah berhasil dibuat.

Untuk view example demo click disini

Setelah object XMLHttpRequest terbentuk selanjutnya kita dapa menanfaatkan object tersebut untuk berkomunikasi dengan server, berikut contoh pemanfaatan class object XMLHttpRequest untuk meminta content data dari server.

Untuk merequest data dari server pada contoh berikut di gunakan function requestContent yang akan di panggil saat sebuah link di click, detail script function yang digunakan seperti berikut :

[php]
function requestContent(){
oRequest = createRequest();
var url = "dataLoad.html";

// Buka komunikasi dengan server
oRequest.open("GET", url, true);

// menunggu respon dari server
// jika sudah di dapat respon dari server, maka hasil respon akan di tampilkan pada DIV dengan ID=’divContent’
oRequest.onreadystatechange = function () {
document.getElementById("divContent").innerHTML="<div align=’center’>Menunggu Respon server</div>";
if (oRequest.readyState == 4) {
// baca data respon dari server
var response = oRequest.responseText;
document.getElementById("divContent").innerHTML = response;
}
}

oRequest.send(null);
}
[/php]

Function diatas pertama kali akan membuat class object XMLHttpRequest dengan memanfaatkan function createRequest() yang ada sebelumnya, hasil pembuatan object akan di tampung kedalam variabel object oRequest.

setelah object XMLHttpRequest terbentuk, berikut akan dilakukan komunikasi dengan request dengan server untuk meminta data dari file dataLoad.html dengan GET method.

Sintaks open request sebagai berikut :

[css autolinks=”false” classname=”myclass” collapse=”false” firstline=”1″ gutter=”true” highlight=”1,2,3″ htmlscript=”false” light=”false” ruler=”false” smarttabs=”true” tabsize=”4″ toolbar=”true”]
oXML.open(<method>, <URL_file>, <async_status>);
[/css]

parameter: – methode : POST atau GET – url_file : lokasi URL file yang akan di request – async_status : TRUE atau FALSE Catatan Asynchronous status: Status TRUE : Javascript akan melanjutkan proses secara normal sementara menunggu respon dari server diterima Status FALSE: akan menunggu hingga respon dari server, selama respon belum di dapat proses yang ada berikutnya akan di hold hingga respon dari server di terima. Setelah melakukan request kepada server function akan menunggu respon dari server

[css autolinks=”false” classname=”myclass” collapse=”false” firstline=”1″ gutter=”true” highlight=”1,2,3″ htmlscript=”false” light=”false” ruler=”false” smarttabs=”true” tabsize=”4″ toolbar=”true”]
oRequest.onreadystatechange;
[/css]

selama menggu respon dari server script pd function berikut akan dijalankan

[php]
document.getElementById("divContent").innerHTML="<div align=’center’>Menunggu Respon server</div>";
if (oRequest.readyState == 4) {
// baca data respon dari server
var response = oRequest.responseText;
document.getElementById("divContent").innerHTML = response;
}
}
[/php]

ReadyState status:
0: uninitialized –> Open status belum dijalankan
1: loading –> Status request belum di jalankan
2: loaded –> Status request sudah di kirimkan, dan menunggu respon dari server.
3: interactive –> Respon dari server sedang dalam proses download.
4: completed –> Respon data dari server telah selesai di download.

Function akan menunggu hingga status respon dari server oRequest.readyState == 4, nilai 4 tersebut berarti respon telah selesai diberikan oleh server, setelah respon selesai di kirimkan hasil respon di tampung kedalam variabel bernama response, proses menampung data respon ini mengunakan sintaks berikut :

[css autolinks=”false” classname=”myclass” collapse=”false” firstline=”1″ gutter=”true” highlight=”1,2,3″ htmlscript=”false” light=”false” ruler=”false” smarttabs=”true” tabsize=”4″ toolbar=”true”]
var response = oRequest.responseText;
[/css]

Dan selanjutnya data hasil respon di tampilkan pada div dengan nama “divcontent” yang telah di persiapkan sebelumnya, untuk menampilkan hasil respon ini mengunakan bantuan DOM (document object model) berikut :

[css autolinks=”false” classname=”myclass” collapse=”false” firstline=”1″ gutter=”true” highlight=”1,2,3″ htmlscript=”false” light=”false” ruler=”false” smarttabs=”true” tabsize=”4″ toolbar=”true”]
document.getElementById("divContent").innerHTML = response;
[/css]

Untuk view example demo click disini

Sampai disini baru terlihat pemanfaatan Javascript dalam mengunakan object XMLHttpRequest saja, data yang di berikan oleh server masih berupa file content statis dan belum memanfaatkan XML data respon.

Semua file contoh ini dapat di download disini

Related Posts



Leave a Reply