AJAX menggunakan Prototype framework

AJAX menggunakan Prototype framework

Prototype framework dapat digunaka untuk mempermudah kita dalam menggunakan konsep Ajax. Disamping caranya yang simple, ia juga memudahkan kita menghandle semua event yang diberikan server.

Fungsi ajax pada prototype di wujudkan dalam sebuah kelas yaitu class Ajax. Dengan class ini kita bisa melakukan request secara asingkron ke server (xmlHttpRequest) tampa harus memikirkan perbedaan yang ada di browser. Sebuah request akan terjadi jika kira mengistans objec Ajax.Request .

1
new Ajax.Request('url_kita', { method:'get' });


Ada dua parameter yang diperlukan, pertama URL request dan kedua adalah konfigurasi/option yang dibutuhkan. Jika tidak disebutkan maka akan diset default.

Keuntungan menggunakan prototype ini adalah:
- Kita tidak perlu pusing masalah perbedaan browser dan cara menginstan XHR
- Semua even sudah di handle oleh object ini, kita tinggal mendefinisikan callbacknya saja

Request life-cycle

Adapun urutan event yang terjadi pada object XHR adalah

Created -> Initialized -> Request sent -> Response reciving (menunggu sampe selesai)-> Response received Selesai

Sebuah object XHR akan di create dulu (di instance), setelah itu di inisialisasi(urlnya apa, methodnya gimana dll). Setelah di inisialisai baru request XHR dikirim. Setelah dikirim maka object XHR akan menunggu samapai semua respon terkirim dan selesai

Berikut ini table Opsi2 yang dapat digunakan:

Option Default Value Keterangan
parameters - Parameter yang akan di passingkan ke server
method Post Metode request yang akan dipakai (Post atau Get)
contentType application/x-www-form-urlencoded Tipe content yang akan digunakan
encoding UTF-8 Tipe encoding Text yang aka digunakan
postBody - Parameter post yang akan dikirimkan jika kita mamakai method POST
requestHeaders text Disini kita bisa mengeset header header untuk proses request

Berikut ini table keterangan masing-masing event handler

Callback Description
onCreate Fungsi ini akan dipanggil ketika objek Ajax.Request di inisialisasi.
onComplete Fungsi ini akan dipanggil ketika semua proses selesai dan semua event telah dipanggil dan di proses.
onFailure Fungsi ini akan dipanggil jika pada proses request gagal (error code 400/500). Fungsi ini juga sama seperti onSuccess, memiliki parameter sebuah xmlHttpRequest Object yang merupakan output request.
onException Fungsi ini juga akan dipanggil jika pada proses request gagal, tetapi perbedaanya denga onFailure adalah funsgi ini akan dipanggil jika error terjadi di sisi client dedangkan onFailure disisi server.
onInteractive Dipanggil ketika koneksi XHR sudah dibuka, data request sudah dikirim, tetapi respon belum diterima secara lengap. biasanya waktu menunggu.
onLoaded Dipanggil ketika koneksi XHR sudah dibuka dan data request telah dikirim
onLoading Dipanggil ketika koneksi XHR sudah dibuka, tetapi data request belum dikirim
onSuccess Fungsi Ini akan dipanggil ketika request telah direspon dengan OK (maksudnya dapat direspon dengan baik – server merespon dengan kode 200). Fungsi ini memiliki sebuah parameter yang merupakan sebuah xmlHttpRequest Object. Jadi resultnya ada di parameter tersebut. Fungsi ini dipanggil sebelum onComplete.
onXYZ XYZ=kode respon server, jadi kalo nerima kode itu maka akan dipanggil fungsinya ex on200.

Urutan event handler dapat diurutkan seperti ini

onCreate -> onUninitialized -> onLoading -> onInteractive -> (onXYZ/onSuccess) -> onComplete

Contoh Aplikasi Hello world

Ini adalah contoh aplikasi ajax sederhana menggunakan Prototype . Untuk Demo Klik disini
1. Buat script HTML dan javascriptnya

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
<head>
<title>Prototype Ajax</title>
<link rel="stylesheet" href="style.css" type="text/css" />
<script src="prototype.js" language="JavaScript" type="text/javascript"></script>
<script type="text/javascript" language="JavaScript">
function callServer() {
var url = 'helloword.php';
var params = 'q=' + $F('nama');
var ajax=new Ajax.Request(url,
  {
    method:'get',parameters: params,
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
     $('Result').innerHTML=response
    },
    onFailure: function(){ $('Result').innerHTML='Something went wrong...' }
  });
 }
</script>
</head>
<body>
<form>
<label for="nama">Nama Anda:</label>
<input type="text" name="nama" id="nama" onkeyup="callServer();" />
<div id="Result"></div>
</form>
</body>
</html>

2. Script PHP

1
2
3
4
5
6
7
8
<?
$data=$_GET['q'];
if ($data=="ibnu"){
echo "Selamat datang ibnu.. ";
}else{
echo "hmm sapa ya..   ".$data."...   Lupa tuh..";
}
?>

Artikel yang berhubungan

About ibnoe
Hi, my name is Ibnu Daqiqil Id and I’m an indonesian Web Developer. I love creating simple, unique and easy-to-use web application and what most counts for me is to work with people who are passionate about what they do.

Leave a Reply

Tags

, ,

Postingan Terbaru

Copyright © 2010 Tutorial PHP Jquery Codeigniter Ajax javascript