Skip to main content

AJAX

AJAX yang dimaksud di sini bukan merupakan suatu daerah di Inggris sana. Bukan pula nama klub sepakbola. AJAX yang dimaksud di sini adalah sebuah teknologi baru yang mulai populer pada tahun 2005 sejak dikeluarkannya Google Suggest (pencarian yang ketika kita mengetikkan keyword langsung muncul suggestion yang berkorelasi dengan apa yang kita cari). Dalam perkembangan selanjutnya AJAX kemudian digunakan pada hampir semua aplikasi Google, entah itu Gmail, Google Map, dan Google Office.

AJAX merupakan singkatan dari Asynchronous JavaScript And XML. Dia bukan merupakan bahasa pemrograman baru, tapi ia merupakan perkawinan yang mengagumkan dari Java Script dan XML. Dalam prakteknya, tidak hanya JavaScript dan XML yang diintegrasikan, tapi juga PHP dan kadang juga Java. Tentu saja, karena kita akan bermain pemrograman web, maka paling tidak kita harus sudah akrab dengan tag-tag HTML. Oleh karena itu, menggunakan AJAX serasa seperti dihadapkan dengan banyak mainan yang bisa kita otak-atik semau kita.

Muncul pertanyaan: apa kelebihan AJAX? Kan dia hanya menggabungkan teknologi yang sudah ada yaitu JavaScript dan XML?

Jawaban dari pertanyaan tersebut adalah karena dengan proses asinkron yang direquest melalui JavaScript, kita bisa membuat prosesnya lebih cepat karena diolah di client (seperti kita ketahui, JavaScript merupakan client-side scripting). Selain itu, dengan AJAX, proses refreshing sebuah halaman tidak harus dilakukan penuh satu halaman, akan tetapi cukup dilakukan pada bagian halaman yang membutuhkan refresh saja. Dengan efisiensi komunikasi ini, beban server juga akan semakin berkurang.

Prinsip dari pemrograman AJAX sebenarnya cukup sederhana. Pada bagian selanjutnya, akan penulis jelaskan program sederhana berbasiskan teknologi AJAX.

Langkah pertama, bukalah editor kesukaan anda (penulis memilih menggunakan aptana IDE karena gratis dan powerful – Aptana dapat didownload di http://www.aptana.com). Kemudian buatlah tiga file, yaitu: index.htm, simple.js, dan simpleResponse.xml.

Untuk index.htm, ketikkan scriptnya sebagai berikut:
<!DOCTYPE
HTML
PUBLIC
"-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html
xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta
http-equiv="Content-Type"
content="text/html; charset=iso-8859-1"
/>

<title>Simple AJAX Application</title>

<script
type="text/javascript"
src="simple.js"></script>

</head>

<body>

<form
action="#">

<input
type="button"
value="Start simple AJAX Request"
onclick="request();"
/>

</form>

<div
id="simpleResponse"></div>

</body>

</html>


Form ini hanya terdiri dari satu button yang akan melakukan request begitu di-click (onclick="request();"). Method request ini dipanggilkan dari simple.js yang dipanggil di dalam tag script di dalam tag head.

Untuk simple.js, ketikkan scriptnya sebagai berikut:
/**


*
@author
Arwan
A
Khoiruddin


*/

var
xmlHttp;


function
createXMLHttpRequest()
{

if
(window.ActiveXObject)
{

xmlHttp
=
new
ActiveXObject("Microsoft.XMLHTTP");

}
else
{

xmlHttp
=
new
XMLHttpRequest();

}

}


function
request()
{

createXMLHttpRequest();

xmlHttp.onreadystatechange
=
handleStateChange;

xmlHttp.open("GET","simpleResponse.xml",true);

xmlHttp.send(null);

}


function
handleStateChange()
{

if
(xmlHttp.readyState
==
4
&&
xmlHttp.status
==
200)
{

var
result
=
xmlHttp.responseXML;

hasil
=
result.getElementsByTagName("response")[0].childNodes[0].nodeValue;

alert("the server replied with "
+
hasil);

hasil
=
result.getElementsByTagName("subresponse");


var
i=0;

var
docHtml
=
"";


while
(i
<
hasil.length)
{

hasilSub
=
hasil[i].childNodes[0].nodeValue;

docHtml
=
docHtml
+
"<i>"
+
hasilSub
+
"</i><br>";

i++;

}

document.getElementById("simpleResponse").innerHTML=docHtml;

}

}

Function yang dipanggil pertama kali adalah request(), proses ini akan meng-create objek xmlHttp untuk request. Kalau browsernya IE, maka xmlHttp akan dibuat berupa ActiveXObject, untuk selain IE, objek xmlHttp dibuat berupa objek xmlHttpRequest(). Setelah itu, pada saat kondisinya readyState (xmlHttp tidak sibuk), xmlHttp akan melakukan proses yang diinginkan, dalam hal ini dalam handleStateChange. xmlHttp akan membuka (GET) file xml yaitu simpleResponse.xml.


Untuk simpleResponse.xml, ketikkan sebagai berikut:
<?xml
version="1.0"
encoding="utf-8"?>

<response>

Hello, this is a simple response

<subresponse>sub satu</subresponse>

<subresponse>sub dua</subresponse>

</response>

SimpleResponse ini akan diparsing dalam method handleStateChange() sesuai tag-tag yang dipunyainya.

Aplikasi AJAX yang lebih lanjut akan saya berikan dalam tulisan-tulisan selanjutnya. Insya Allah.

Comments

chris said…
wah ..nice posting nie..
thanks scriptnya..:D

o iya jng lupa mampir kesini

Popular posts from this blog

Find JIRA issues mentioned in Confluence Page

I have been walking through a lot of pages in internet but have not found any answer except one. However, the answer is not complete, so I will share my experience here. This feature is very useful, especially to summarize the issues found during certain tests, where the tests are reported in a confluence page. I found that there are so many questions about this, but Atlassian seems does not want to bother with this request. I found one way to do this by the following tricks Take one JIRA issue that related to the target confluence page (in this case, say it is GET-895) Find the global ID of a JIRA issue: http://bach.dc1.scram.com:8080/rest/api/latest/issue/GET-895/remotelink It will show the JSON like this: [{"id":28293,"self":"http://bach.dc1.scram.com:8080/rest/api/latest/issue/GET-895/remotelink/28293","globalId":"appId=662e1ccf-94da-3121-96ae-053d90587b29&pageId=105485659","application":{

If and For in Wolfram Mathematica (with examples)

IF Condition in Wolfram Mathematica The syntax is as follows xxxxxxxxxx If [ condition , what to do if true , what to do if false ] Some examples Example 1. Simple command x x = - 3 ; If [ x < 0 , - x , x ] 3 Example 2. If condition in a function abs [ x_ ] := If [ x < 0 , - x , x ] abs /@ { - 3 , 2 , 0 , - 2 } { 3 , 2 , 0 , 2 }   For in Wolfram Mathematica The syntax is as follows For [ start , test , inc , what to do ] Some examples Example 1. Simple Loop xxxxxxxxxx For [ i = 0 , i < 4 , i ++, Print [ i ]] 0 1 2 3 Example 2. Another simple loop For [ i = 10 , i > 0 , i --, Print [ i ]] 10 9 8 7 6 5 4 3 2 1 Example 3. Print list a = { 10 , 3 , 9 , 2 } For [ i = 1 , i < 5 , i ++, Print [ a [[ i ]]]] 10 3 9 2  

Android studio in ubuntu - problem: 'tools.jar' seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rather than JRE.

I love coding, especially Java. Because Android apps is written in Java, I would love to make one as well. Unfortunately, when I tried to install Android Studio on my Ubuntu yesterday, I got this error message: 'tools.jar' seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rather than JRE. When I google on this error, there are so many websites and forums discuss about this error as well as the solutions. However, in linux (or ubuntu in my case), sometime we have different environment so that the solution will not always work (sometimes we have to do another thing before or after that solution). And this also happen in this case. Here are what I did then: 1. Know what exactly the problem is: the problem is that the JAVA_HOME in my system did not point to JDK. Instead, it points to a JRE. JRE can only be used to run java applications, not to build them. 2. Check the java path used by the system. In terminal, I typed the following: