Thaimisc.com : เริ่มต้นทำความรู้จักกับ Ajax Technology
ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us | Colocation | Web Hosting | เปิดร้านค้าฟรี


Category : Today's Tips Print Article Only Print Aticle With Comment
เริ่มต้นทำความรู้จักกับ Ajax Technology
เขียนโดย Poj , 08-03-2006
ผมเชื่อว่าจะเป็นเทคโนโลยีที่ใช้กันอย่างแพร่หลายบนเว็บในอนาคต
Ajax (Asynchronous Javascript and XML) คือเทคโนโลยีที่รวมเอาความสามารถของ Javascript , XML, CSS และ XHTML เอาไว้ด้วยกัน
Ajax เป็นการประยุกต์เอาเทคโนโลยีเก่ามาผสมผสานจนได้เทคโนโลยีใหม่ที่น่าศึกษาและนำมาใช้งาน แต่ก่อนอื่นมาทำความเข้าใจหลักการทำงานของ Web กันก่อน

ตามปกติเมื่อเราเปิด Web Browser และพิมพ์ URL ของเว็บเพจที่ต้องการ เราจะเรียกผู้ใช้ว่า client-side browser ก็จะส่งค่าไปยัง server
เพื่อขอเปิดหน้า url ที่เราพิมพ์ลงไป เช่น www.google.co.th และเมื่อทาง server ได้รับค่าที่ส่งมาก็จะส่งหน้าเว็บเพจกลับมาให้ โดยเราจะเรียก
server ว่าผู้ให้บริการหรือ server side เมื่อฝั่งผู้ใช้ได้รับข้อมูลจกา server ที่ส่งมาให้ browser ก็จะนำข้อมูลนั้นขึ้นหน้าจอ จากนั้นเมื่อเราคลิกเว็บหน้า
อื่นๆก็จะเริ่มขั้นตอนทั้งหมดใหม่อีกครั้ง ตัวอย่างเพื่อความเข้าใจจากโปรแกรมเครื่องคิดเลขแบบง่ายๆครับ เมื่อผู้ใช้ (client)ใส่ตัวเลขในค่าที่ 1 และ 2 แล้ว
คลิกเลือกว่าจะบวก ลบ คูณ หรือ หาร เพื่อหาค่าที่ต้องการข้อมูลนี้ก็จะส่งไปยัง server เพื่อเอาค่าทั้งสองที่ผู้ใช้ป้อนไปหาค่าตามที่เลือกไว้ไปจัดการ

จะเห็นว่าเมื่อคลิกเลือก บวก ลบ คูณ หรือ หาร server ก็จะเอาไฟล์ action="ไฟล์ที่จะส่งค่าไป" มาจัดการคำนวณค่าออกมา จากนั้นก็จะส่งหน้า webpage หน้าใหม่
ที่แสดงผลที่คำนวณตามเงื่อนไขออกมา วิธีการนี้หน้าจอ webpage จะต้องมีการ refresh ใหม่ และการรับผลที่ส่งกลับมาจะเป็นการส่งมาแบบทั้ง
หน้า webpage แบบเต็มๆ ทำให้กิน bandwidth มาก (ดูตัวอย่างได้ที่นี่)

แล้ว Ajax ดีกว่าตรงไหน การทำงานของ Ajax นั้นจะส่งเฉพาะข้อมูลที่ต้องการไปยัง server และส่งกลับมาเฉพาะข้อมูลที่ต้องการไม่ใช่การส่งทั้งหน้า
webpage ใหม่ โดย Ajax อาศัย object ที่ชื่อ XMLHTTP เมื่อผู้ใช้เปิดหน้าเว็บแล้วมีการส่งข้อมูล Ajax ก็จะให้ XMLHTTP ส่งค่าไปให้ server
แล้วให้ server จัดการข้อมูลนั้นตามเงื่อนไขแล้วส่งข้อมูลนั้นกลับมาในรูปแบบ XML ซึ่งก็จะใช้ javascript เป็นตัวจัดการข้อมูลที่ได้รับให้แสดงผลได้อย่าง
ถูกต้องในหน้าเว็บเพจเดิม ตัวอย่างโปรแกรมเครื่องคิดเลขอย่างง่ายที่อาศัยการทำงานของ Ajax ดูได้ (ที่นี่)

ข้อดีของ Ajax มีมากมายครับ ทั้งการแสดงผลลัพธ์ที่เร็วกว่า ไม่ต้อง refresh หน้าจอใหม่ทุกครั้งอีกทั้งข้อมูลที่ส่งไป-กลับไม่ได้ส่งไปทั้งหน้า
ทำให้กิน bandwidth น้อยกว่า ตัวอย่างเว็บที่ใช้ Ajax ก็เช่น Google Mail

โค้ดของโปรแกรมเครื่องคิดเลขอย่างง่ายที่อาศัยการทำงานของ Ajax ไฟล์ชื่อ calc_xmlhttp.html

<html>
<head>
<title>ตัวอย่างการใช้งาน AJAX Technology </title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<style type="text/css">
<!--
body,td,th {
font-family: MS Sans Serif, Microsoft Sans Serif, Tahoma;
font-size: 10pt;
}
-->
</style></head>

<body>
<script language="javascript">
// เริ่ม XmlHttp Object
function uzXmlHttp(){
var xmlhttp = false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlhttp = false;
}
}

if(!xmlhttp && document.createElement){
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
// End XmlHttp Object

//คำนวณผลบวก
function result1(){
// เอาค่าจาก form มาเก็บลง num1,num2
var num1 = document.form1.num1.value;
var num2 = document.form1.num2.value;
var result;
var url = 'ajax.php?num1=' + num1 + '&num2='+ num2;
xmlhttp = uzXmlHttp();
xmlhttp.open("GET", url, false);
xmlhttp.send(null);
// รับค่ากลับจาก server มาเก็บลง result
result = xmlhttp.responseText;

// นำค่าที่ได้ออกไปแสงผล
document.form1.result.value = result;

}
//คำนวณผลลบ
function result2(){
// เอาค่าจาก form มาเก็บลง num1,num2
var num1 = document.form1.num1.value;
var num2 = document.form1.num2.value;
var result;
var url = 'ajax1.php?num1=' + num1 + '&num2='+ num2;
xmlhttp = uzXmlHttp();
xmlhttp.open("GET", url, false);
xmlhttp.send(null);
// รับค่ากลับจาก server มาเก็บลง result
result = xmlhttp.responseText;

// นำค่าที่ได้ออกไปแสงผล
document.form1.result.value = result;

}
//คำนวณผลคูณ
function result3(){
// เอาค่าจาก form มาเก็บลง num1,num2
var num1 = document.form1.num1.value;
var num2 = document.form1.num2.value;
var result;
var url = 'ajax2.php?num1=' + num1 + '&num2='+ num2;
xmlhttp = uzXmlHttp();
xmlhttp.open("GET", url, false);
xmlhttp.send(null);
// รับค่ากลับจาก server มาเก็บลง result
result = xmlhttp.responseText;

// นำค่าที่ได้ออกไปแสงผล
document.form1.result.value = result;

}
//คำนวณผลหาร
function result4(){
// เอาค่าจาก form มาเก็บลง num1,num2
var num1 = document.form1.num1.value;
var num2 = document.form1.num2.value;
var result;
var url = 'ajax3.php?num1=' + num1 + '&num2='+ num2;
xmlhttp = uzXmlHttp();
xmlhttp.open("GET", url, false);
xmlhttp.send(null);
// รับค่ากลับจาก server มาเก็บลง result
result = xmlhttp.responseText;

// นำค่าที่ได้ไปแสดงผล
document.form1.result.value = result;

}
</script>
<p align="center"><strong>
ตัวอย่างการใช้งาน AJAX Technology ( Asynchronous Javascript and XML)
</strong><p>

<table width="365" border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
<form name="form1" method="post" action="">
<tr bgcolor="#FFFFFF">
<td colspan="2"><div align="center"><strong>โปรแกรมเครื่องคิดเลขอย่างง่าย</strong></div></td>
</tr>
<tr bgcolor="#FFFFFF">
<td><div align="right">ตัวเลขที่ 1: </div></td>
<td><input name="num1" type="text" id="num1"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td><div align="right">ตัวเลขที่ 2: </div></td>
<td><input name="num2" type="text" id="num2"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="2"><div align="center"><strong>ค่าที่รับกลับมา</strong></div></td>
</tr>
<tr bgcolor="#FFFFFF">
<td><div align="right">ผลรวม : </div></td>
<td><input name="result" type="text" id="result"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td> </td>
<td><input type="button" name="button" value="บวก" onClick="result1();">
<input type="button" name="button" value="ลบ" onClick="result2();">
<input type="button" name="button" value="คูณ" onClick="result3();">
<input type="button" name="button" value="หาร" onClick="result4();"></td>
</tr>
</form>
</table>
<br>

</body>
</html>

 

โค้ดส่วนนี้จะทำหน้าที่รับค่าพร้อมทั้งคำนวณให้นำโค้ดด้านล่างเซฟเป็นไฟล์ตามชื่อที่ระบุ

ไฟล์ ajax.php
<?php
$result = $num1 + $num2;
print $result;
?>

ไฟล์ ajax1.php
<?php
$result = $num1 - $num2;
print $result;
?>

ไฟล์ ajax2.php
<?php
$result = $num1 * $num2;
print $result;
?>

ไฟล์ ajax3.php
<?php
$result = $num1 / $num2;
print $result;
?>

<- Back | Next ->

Friend Links : TEKIYAKU|翻訳会社 | hotel tokyo|Visit First | japan guide|Visit First | バンコク(タイ)情報ならVisit First | 宅配ピザはDomino | 中古車ならプロト | ブランド買取 | ダイヤモンド買取 | 伊豆 別荘のTOKYU RESORT | web会議とテレビ会議ならANET | SEO 検索エンジン対策 当広告について

ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us
Copyright 1999-2006 Thailand Miscellaneous. Allrights reserved. webmaster@thaimisc.com