Ajax Asynchronous JavaScript and XML

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Chapter 11 Ajax.
Advertisements

1. 2 บรรยายโดยผู้สอนและใช้เอกสาร ประกอบการสอนของผู้สอน สอนโดยใช้สื่อคอมพิวเตอร์ผ่านเครื่อง ฉาย อภิปรายในชั้นเรียนร่วมกัน ให้นิสิตค้นคว้าเพิ่มเติมจากตำราและ.
ASP.NET Uthai ShiangJan Information and Communication Technology.
PHPPHP การเขียนโปรแกรมคอมพิวเตอร์ 1 สาขาวิชาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ.
1.NET Framework Class อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
การสร้างเว็บไซต์ด้วย Joomla
Server Object. 2 z ใช้ในการควบคุม และบริหารเว็บเซิร์ฟเวอร์ ซึ่งทำด้วยการเขียนสคริปต์ใน แอปพลิเคชั่น ASP ( โดยเรียกใช้เมธอด หรือกำหนดค่าพรอพเพอร์ตี้ของ.
การใช้งานโปรแกรม SPSS
Computer in Business เรื่อง การใช้งาน Access เบื้องต้น.
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ซอฟต์แวร์และการเลือกใช้
ในเครือข่ายอินเทอร์เน็ต โปรแกรมประยุกต์ หลายชนิด มีการทำงานร่วมกันระหว่างเครื่อง คอมพิวเตอร์ ที่ต่ออยู่ในเครือข่าย โดยอาศัยเครือข่ายเป็น สื่อกลาง ในการติดต่อสื่อสารระหว่างกันและกัน.
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
ระบบจัดการพนักงาน E-Clocking. E-clocking Application คืออะไร E-clocking ย่อมาจากคำว่า Easy Clocking ก็คือทำงานและ ดูแลข้อมูลการบริหารบันทึกเวลาการทำงานของพนักงานแบบ.
โครงการจัดทำฐานข้อมูลสมาชิก สหกรณ์การเกษตร ของกรม ส่งเสริมสหกรณ์ บริษัท บิซโพเทนเชียล จำกัด Project Code: CPD_COOP_57.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
IT Manual SCM June 2016 By Prasert Dokmuang. 2 3.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
วิธีการใ ช้ โปรแกรมคำนวณคะแนน กลุ่มเกษตรกรดีเด่น กองพัฒนาสหกรณ์ด้าน การเงินและร้านค้า กรมส่งเสริม สหกรณ์
MTH 261 File Management. File Management File Management จะอธิบายเกี่ยวกับการเขียน ส่วนจัดการแฟ้มข้อมูล เราสามารถที่จะเขียน โปรแกรมเพื่อเรียกใช้แฟ้มข้อมูลที่เรามี
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
ความรู้พื้นฐานเกี่ยวกับการ สร้างเว็บไซต์. ศัพท์เบื้องต้นเกี่ยวกับเว็บไซต์ Internet คือ ระบบเครือข่ายคอมพิวเตอร์ที่ใหญ่ที่สุดใน โลกเกิดจากการเชื่อมโยง.
ระบบงานธุรการ (GA Center). นายวรากร หอมมณฑา รหัสนิสิต สาขาเทคโนโลยีสารสนเทศ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา ตำแหน่งงาน System Programmer.
การออกแบบโครงสร้างข้อมูล การออกแบบโครงสร้างข้อมูล หมายถึง กรณีสร้างตารางใหม่ด้วย ออกแบบตาราง (Table Design) เพื่อต้องการกำหนด โครงสร้างด้วยตนเอง โดยมีขั้นตอนการ.
ซอร์ฟแวร์ ( Software ). Microsoft excel Microsoft excel Microsoft power point.. Link Link.
โดย ภก.อรรถกร บุญแจ้ง เภสัชกรชำนาญการ โรงพยาบาลมหาชนะชัย.
สาธิตการใช้โปรแกรมฐานข้อมูล
Chapter 9 WWW (2).
ขั้นตอนการกรอกข้อมูล ลงทะเบียนทางหลวงท้องถิ่นในระบบ
ง21101 การงานอาชีพและเทคโนโลยี ม. 1 เจตคติต่อการประกอบอาชีพ
ระบบตัวแทนจำหน่าย/ ตัวแทนขายอิสระ
“วิธีการใช้งาน PG Program New Version สำหรับ PGD”
เกม คณิตคิดเร็ว.
By Btech GPS : Jan GPS By BtechGPS By Btech GPS : Jan
SQL Structured Query Language.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การติดต่อฐานข้อมูลและการแสดงผล
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
ความรู้เบื้องต้นเกี่ยวกับ PHP Introduction to PHP
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
การติดต่อฐานข้อมูลและการแสดงผล
การพัฒนาการใช้งานในระบบเว็บ
บทที่ 5 เครื่องมือสืบค้นข้อมูล (Search Engine)
The Comptroller General's Department ล้างบัญชีพักงานระหว่างก่อสร้าง
ระบบตัวแทนจำหน่าย/ ตัวแทนขายอิสระ
โครงสร้างภาษา C Arduino
หน่วยการเรียนที่ 4 เรื่อง การควบคุมทิศทางการทำงาน
กลุ่มคำและประโยค ภาษาไทย ม. ๓
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การติดต่อฐานข้อมูลและการแสดงผล
ระบบบริหารจัดการงานวิจัยของหน่วยงาน Department Research Management System DRMS โดยทีมพัฒนาระบบ DRMS สำนักงานคณะกรรมการวิจัยแห่งชาติ (วช.)
กำหนดการ บันทึกข้อมูล ผ่านเว็บไซต์
โปรแกรมระบบจัดเก็บข้อมูลสถิติคดีของศาลยุติธรรม
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
วิธีการกำหนดค่า Microsoft SharePoint ของคุณ เว็บไซต์ออนไลน์
SMS News Distribute Service
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
หน่วยการเรียนรู้ การเขียนโปรแกรมภาษาขั้นพื้นฐาน เรื่อง โครงสร้างพื้นฐาน HTML 5 รหัส รายวิชา ง23102 การงานอาชีพและเทคโนโลยี 6 กลุ่มสาระ การงานอาชีพและเทคโนโลยี
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
User Manual Frontend.
กิจกรรมที่ 7 นายปรีชา ขอวางกลาง
คู่มือการใช้งานระบบเสนอหัวข้อของนักศึกษา
Array: One Dimension Programming I 9.
บทที่ 4 การจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
การออกแบบและพัฒนาเว็บไซต์
ระบบการส่งต่อข้อมูลอาการไม่พึงประสงค์จากการแพ้ยา
บทที่ 7 การบัญชีภาษีมูลค่าเพิ่ม
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

Ajax Asynchronous JavaScript and XML Chapter 9 Ajax Asynchronous JavaScript and XML

รูปแบบการส่งข้อมูลบนอินเทอร์เน็ต แบบ Synchronous คือ การส่ง request จาก Browser ไปประมวลผลที่ Server โดยต้องรอให้ Server ประมวลผลเสร็จก่อนและส่ง response กลับมายัง Browser จึงจะแสดงผลได้ แบบ Asynchronous คือ การส่ง request จาก Browser ไปประมวลผลที่ Server โดยไม่ต้องรอให้ Server ประมวลผลเสร็จ Browser จะรับข้อมูลเมื่อ Server ทำเสร็จแล้ว

รูปแบบการส่งข้อมูลบนอินเทอร์เน็ต Synchronous Asynchronous User Action User Action Client Server Client Server HTTP Request HTTP Request wait Screen Reload HTTP Respond HTTP Respond Data Update Data Update

ปัญหาการส่งข้อมูลแบบ Synchronous เมื่อมีการเปลี่ยนแปลงข้อมูลเพียงบางส่วนบนเว็บเพ็จ จะต้องรีโหลดเว็บเพ็จใหม่ทั้งหน้า การรอหน้าเว็บเพ็จตอบกลับจาก Server ไม่สามารถทำงานอย่างอื่นขนานกันไปได้

Ajax คืออะไร Ajax คือ object มาตรฐานในภาษา JavaScript ที่ใช้ในการรับและส่งข้อมูลกับ Server แบบ Asynchronous Ajax รองรับข้อมูลหลากหลายรูปแบบ JSON XML HTML Plain Text

สถาปัตยกรรมเว็บที่ไม่ใช้ และใช้ Ajax Client-side Client-side User Interface User Interface JavaScript: send() text, HTML, JSON Ajax Engine (JavaScript) HTTP respond text, HTML, JSON HTTP respond text, HTML, JSON HTTP request HTTP request Server-side Server-side Web Server Web Server Backend Processing: database, business process Backend Processing: database, business process เว็บที่ไม่ใช้ Ajax เว็บที่ใช้ Ajax

XMLHttpRequest XMLHttpRequest คือ object สำหรับใช้ส่งคำร้อง (request) และรับผลตอบกลับ (response) ระหว่าง Browser กับ Server ชื่อ property คำอธิบาย onreadystatechange ใช้กำหนดชื่อฟังก์ชันที่จะให้ทำงาน เมื่อมีการเปลี่ยนแปลงสถานะ (ค่าใน readyState เปลี่ยนแปลง) readyState ค่าบอกลำดับการทำงานของการส่ง request และรับ response status รหัสการตอบกลับจาก Server (HTTP response) responseText ข้อมูลที่ Server ส่งกลับมายัง Browser (ข้อความที่ถูก echo ใน PHP)

4 3 2 1 Client-side readyState Server-side ผลลัพธ์ คือ 15 <html><head><meta charset="utf-8"> <script> var httpRequest; function send() { httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = showResult; var a = document.getElementById("a").value; var b = document.getElementById("b").value; var url= "add.php?a=" + a + "&b=" + b; httpRequest.open("GET", url); httpRequest.send(); } function showResult() { if (httpRequest.readyState == 4 && httpRequest.status == 200) { document.getElementById("result").innerHTML = httpRequest.responseText; </script></head> <body> a = <input type="text" id="a"><br> b = <input type="text" id="b" onkeyup="send()"><br> <span id="result"></span> </body></html> Client-side 10 5 ผลลัพธ์ คือ 15 add.php?a=10&b=5 ดึงผลลัพธ์จาก Server Ajax Engine showResult() เมื่อมีการกรอกตัวเลขที่ช่องนี้จะเรียกฟังก์ชัน send() <b>ผลลัพธ์</b> คือ 15 กำหนดจุดที่จะให้แสดงผลลัพธ์ Server-side add.php <?php $a = $_GET["a"]; $b = $_GET["b"]; echo "<b>ผลลัพธ์</b> คือ "; echo $a + $b; ?> Web Server readyState add.php 4 3 2 1

การตรวจสอบสถานะของ request ค่าบอกลำดับการทำงานของการส่ง request และรับ response จะถูกเก็บใน property ชื่อ readyState มี 4 ค่า ได้แก่ 0 – การร้องขอยังไม่ถูกกำหนดขึ้น 1 – การร้องขอได้ถูกกำหนดขึ้นแล้ว 2 – การร้องขอได้ถูกส่งไป 3 – การร้องขอกำลังทำงานอยู่ 4 – การร้องขอได้เสร็จสิ้นการทำงานแล้ว

รหัสการตอบกลับจาก Server รหัสการตอบกลับจาก Server (HTTP response) จะถูกเก็บใน property ชื่อ status ซึ่งเป็นรหัสมาตรฐานของ HTTP Code ความหมาย คำอธิบาย 200 OK คำร้องที่ต้องการถูกพบบน Server 401 Unauthorized คำร้องที่ต้องการไม่มีสิทธิ์ในการเข้าถึง 403 Forbidden คำร้องที่ต้องการเป็นส่วนที่หวงห้ามในการเข้าถึง 404 Not Found คำร้องที่ต้องการไม่พบบน Server 500 Internal Server Error Server มีข้อผิดพลาด 503 Service Unavailable Server ไม่สามารถจัดการกับคำร้องได้

ฟังก์ชันของ XMLHttpRequest ชื่อฟังก์ชัน คำอธิบาย open(method, url, [isAsynchronous]) เปิดการติดต่อกับ Web Server - method คือ การติดต่อแบบ GET หรือ POST - url คือ ไฟล์ PHP ที่ใช้รับและส่งข้อมูล - isAsynchronous มีค่า default เป็น true send(content) ส่งการร้องขอไปยัง Server abort() ยกเลิกการร้องขอ getAllResponseHeader() รับค่าส่วนหัวที่ร้องขอทั้งหมดในรูปแบบ key/value getResponseHeader(header) รับค่าส่วนหัวที่ร้องขอตามที่ระบุ setRequestHeader(header, value) กำหนดประเภทของข้อมูลที่จะมีการส่งหรือรับ สามารถส่งค่าให้ server ผ่าน method send ได้ แต่ต้องระบุ header ด้วย xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); send("fname=Henry&lname=Ford");

ขั้นตอนการสร้างเว็บที่มีการใช้ Ajax สร้างส่วนที่เป็นโค้ด html กำหนด event ให้กับแท็กที่จะกระตุ้นให้เริ่มส่งข้อมูลแบบ asynchronous กำหนดจุดแสดงผลเมื่อได้รับการตอบกลับ สร้างส่วนที่เป็นโค้ด JavaScript เขียนฟังก์ชันสำหรับใช้ในการส่งข้อมูล เขียนฟังก์ชันสำหรับใช้ในการรับข้อมูล สร้างส่วนที่เป็นโค้ด PHP บน Server ซึ่งทำหน้าที่คอยรับและส่งข้อมูล

กิจกรรม จงเขียนเว็บในการคำนวณยอดขายผลไม้ โดยแบ่งการทำงานออกเป็นสองฝั่ง ได้แก่ ฝั่งเซิร์ฟเวอร์ ทำหน้าที่คำนวณยอดรวม ซึ่งเขียนด้วยภาษา PHP ส่วนฝั่งไคลเอนต์เขียนด้วยภาษา HTML และ JavaScript+Ajax ทำหน้าที่รับค่าจำนวนผลไม้แต่ละชนิดขายได้ส่งไปยังเซิร์ฟเวอร์ และนำผลลัพธ์มาแสดงผลโดยไม่มีการรีโหลดหน้าเว็บใหม่

การตรวจสอบชื่อผู้ใช้ด้วย Ajax การลงทะเบียนที่มีการกรอกชื่อผู้ใช้ จะถูกตรวจสอบว่า username ซ้ำกันเมื่อมีการคลิกปุ่มส่งข้อมูลแล้ว แต่การใช้ Ajax จะช่วยตรวจสอบหลังจากที่กรอก username เสร็จได้เลย โดยไม่ต้องรอพิมพ์ให้ครบ

ฟอร์ม HTML เมื่อผู้ใช้กรอก username เสร็จ และไปยังช่องถัดไป ฟังก์ชัน checkUsername จะถูกทำงาน <form> <h1>Please register:</h1> Username:<input id="username" type="text" onblur="checkUsername()"><br> First Name:<input type="text" name="firstname"><br> LastName:<input type="text" name="lastname"><br> Email:<input type="text" name="email"><br> <input type="submit" value="Register"> </form>

ฟังก์ชันส่งและรับข้อมูล <script> var xmlHttp; function checkUsername() { document.getElementById("username").className = "thinking"; xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = showUsernameStatus; var username = document.getElementById("username").value; var url = "checkName.php?username=" + username; xmlHttp.open("GET", url); xmlHttp.send(); } function showUsernameStatus() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { if (xmlHttp.responseText == "okay") { document.getElementById("username").className = "approved"; } else { document.getElementById("username").className = "denied"; document.getElementById("username").focus(); document.getElementById("username").select(); </script> แสดงภาพตรงช่อง username ว่ากำลังตรวจสอบ กำหนดฟังก์ชั่นที่ต้องการให้ทำงาน เมื่อมีการเปลี่ยนแปลงสถานะ ดึงค่า username จากฟอร์ม กำหนดตำแหน่งสคริป php ที่จะให้รับข้อมูล พร้อมกับแนบชื่อผู้ใช้ไปด้วย ถ้าค่าที่ตอบกลับเป็นคำว่า okay จะกำหนดคลาสให้ textfield ชื่อ approved

CSS สำหรับแสดงสถานะ .thinking { background: white url("img/checking.gif") no-repeat; background-position: 150px 1px; } .approved { background: white url("img/true.gif") no-repeat; .denied { background: #FF8282 url("img/false.gif") no-repeat;

PHP ที่คอยรับและส่งข้อมูล checkName.php <?php $takenUsernames = array("bill", "ted"); sleep(1); if (!in_array( $_GET["username"], $takenUsernames ) ) { echo "okay"; } else { echo "denied"; } ?> จำลอง username ที่มีอยู่แล้ว ให้หยุดรอ 1 วินาที เพื่อจำลองว่ามีการตรวจสอบอยู่ ถ้ามี username ในอาร์เรย์ ส่งคำว่า okay กลับไป