Tuesday, August 11, 2009

Pustaka AJAX : PHPLiveX




Jadul deh artikel ini. "AJAX dah lama banget mas!" Hehe, maaf2, saya kan seringnya belajar per request aja. Jadi, baru kali ini ada request yg pas kalao pakai AJAX. ^_^

Awalnya mau start dari scratch aja, namun pada akhirnya revert ke pustaka aja : PHPLiveX.
Sepertinya sederhana, coba saya pastekan satu kode saja. Ini :


<?
header("Content-Type: text/html; charset=UTF-8");
require_once("PHPLivex.php");

function pingDomain($domain){
$starttime = microtime(true);
$file      = fsockopen ($domain, 80, $errno, $errstr, 10);
$stoptime = microtime(true);
$status    = 0;

if (!$file) $status = -1;  // Site is down
else {
fclose($file);
$status = ($stoptime - $starttime) * 1000;
$status = floor($status);
}
return $status;
}

function pingX($ip){
$status = pingDomain($ip);
if($status != -1) return "Domain alive";
return "Domain is down";
}


$pingAjax= new PHPLiveX(array("pingX"));
?>

<html>
<head>
<? $pingAjax->Run(); ?>
<script type="text/javascript">
function ping(){
val = document.getElementById("ip").value;
pingX(val, {'target':'msg','preloader':'pr'});
}
</script>
</head>
<body>
<input type="button" value="Ping" onclick="ping();">
<input type="text" id="ip" size="15" maxlength="15">
<span id="pr" style="visibility:hidden;"><i>Validating...</i></span>
<span id="msg"></span>
</body>
</html>


Fungsi aplikasi itu untuk melakukan proses Ping, pengecekan apakah suatu domain hidup/mati. Gunanya? bisa untuk monitoring layanan di jaringan via web.

Konsep utama AJAX, adalah, Anda bisa melakukan permintaan ke server, tanpa user perlu merefresh halaman browser. Facebook-an? Ya itu lah. Ga pindah2 halaman, eeeh, ada temen yg ketahuan lagi narsist2an dengan statusnya :p Seperti itulah...

Di PHPLiveX ini, konsep utamanya disini :
$pingAjax= new PHPLiveX(array("pingX"));


itulah kode yang akan membuat suatu fungsi PHP, yaitu disini pingX bisa dipanggil via javascript, artinya bisa dipanggil tanpa perlu merefresh halaman. Pada contoh ini, perhatikan kode input dan submit : tidak ada form action kan? artinya, dia hanya akan mengeksekusi fungsi javascript ping() saja, yaitu ini :
function ping(){
val = document.getElementById("ip").value;
pingX(val, {'target':'msg','preloader':'pr'});
}


Perhatikan bahwa, kode ini meski satu file saja, (saya sertakan nanti), namun sesungguhnya porsi kode di bagi kedua sisi : klien dan server. Yang disisi klien adalah fungsi javascript ping(), sedang yang di server, adalah fungsi php pingX(). (Saya pakai nama pingX, karena sptnya di php sudah ada fungsi ping(), spy ga bentrok gitu).

Semoga bermanfaat!
NB:
  • Masih banyak AJAX Framework yang lain. Silahkan browsing aja dengan keyword PHP AJAX FRAMEWORK.
  • Menarik AJAX ini.... Benernya saya ga terlalu antusias dengan aplikasi WEB, apalagi PHP, tapi penambahan AJAX ini, .. ya, lumayan. Pribadi lho ini. Mungkin aja ada temen2 yg guetoool bgt dengan PHP :)

No comments: