SlideShare a Scribd company logo
1 of 12
AJAX
Đề tài : Công nghệ Ajax trong website
 Phan Minh Tuấn
 Đặng Phước
Thưởng
 Lê Văn Huy
Nhóm 2 – TT0701
Trường Đại Học Ngoại Ngữ Tin Học
TPHCM
TP Hồ Chí Minh , Ngày 9 Tháng 11 năm 2010
Giảng viên hướng dẫn : Huỳnh Ngọc Tín
NHẬN XÉT CỦA GIẢNG VIÊN

………………………………………………………..
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
……………………………………………………………………..…
………………………………………………………………………
……………………………………………………………
I. Ajax là gì?
AJAX (tiếng Anh), viết tắt cho "Asynchronous JavaScript and XML", nghĩa là "JavaScript
và XML không đồng bộ". Từ Ajax được ông Jesse James Garrett tạo ra và dùng lần đầu tiên vào
tháng 2 nãm 2005 để chỉ kỹ thuật này, mặc dù các hỗ trợ cho Ajax đã có trên các chương trình
duyệt từ 10 nãm trước. Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết
hợp các ngôn ngữ:
HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin
Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript,
nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị
Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủ
web. (Mặc dù, việc trao đổi này có thể được thực hiện với nhiều định dạng như
HTML, văn bản thường, JSON và thậm chí EBML, nhưng XML là ngôn ngữ thường
được sử dụng).
XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nào cũng có
thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text), JSON và ngay
cả EBML.
Các trình duyệt hỗ trợ Ajax:
Apple Safari từ 1.2 trở lên
Konqueror
Microsoft Internet Explorer từ 4.0 trở lên
Mozilla/Mozilla Firefox từ 1.0 trở lên
Netscape từ 7.1 trở lên
Opera từ 8.0 trở lên
GreenBrowser 4.3
Google Suggest
Ajax được làm phổ biến vào năm 2005 bởi Google, với Google Suggest. Google Suggest
dùng Ajax để tạo ra một giao diện web rất sinh động, khi bạn gõ phím trong textbox tìm kiếm
của Google, một JavaScript gửi những kí tự đến server và server trả về một danh sách các gợi ý
rất gần gũi với từ khóa ta nhập vào.
II. Ajax hoạt động thế nào?
So sánh với các ứng dụng web truyền thống
Điểm khác biệt cơ bản nhất của công nghệ này là việc xử lý thông tin được thực hiện trên
máy thân chủ (Client) thay vì máy phục vụ (Server) như cách truyền thống. Máy chủ chỉ làm một
việc đơn giản là nhận thông tin từ máy khách và trả các dữ liệu về cho máy khách. Máy khách xử
lý sơ bộ thông tin của người dùng nhập vào, sau đó chuyển về máy chủ rồi nhận dữ liệu từ máy
chủ và xử lý để hiển thị cho người dùng.
Một trong những điểm mấu chốt của công nghệ Ajax là bạn không tương tác trực tiếp với
máy chủ như cách truyền thống mà là qua một lớp trung gian của Ajax. Có thể bạn sẽ hỏi phải
chăng như vậy thì sẽ làm cho cơ chế hoạt động phải qua thêm một bước trung gian và sẽ làm
chậm hơn nữa quá trình tương tác? Thắc mắc trên là hoàn toàn có lý, tuy nhiên, thực tế lại ngược
lại: sử dụng Gmail bạn có cảm giác mọi thứ nhanh hơn. Lý do là:
Không phải lúc nào bạn cũng cần phải tương tác với máy chủ. Như trong trường hợp của
Gmail, một khi giao diện của Gmail đã được tải về xong (để ý khoảng thời gian ngắn từ
khi bạn đăng nhập cho đến khi giao diện của Gmail xuất hiện) thì những tác vụ như
chuyển từ thư mục này sang xem thư mục khác không nhất thiết phải hỏi lại máy chủ (tất
nhiên với điều kiện dữ liệu đã có sẵn)
Bằng cách chỉ nhận những thông tin cần thiết (ở dạng XML), dung lượng truyền tải giữa
máy tính của bạn và máy chủ sẽ giảm đi rất nhiều. Sau khi bạn giao diện đã được tải về 1
lần, Ajax sẽ không cần phải tải lại toàn bộ giao diện đó mỗi khi tương tác với máy chủ.
Thay vào đó, Ajax sẽ gởi yêu cầu đến máy chủ và nhận kết quả từ máy chủ về những gì
đã thay đổi sau khi máy chủ thực hiện yêu cầu đó. Ajax sau đó sẽ thông báo cho phần
giao diện (thông qua các lời gọi Javascript) thực hiện các thay đổi tương ứng trên giao
diện.
Tương tác giữa phần giao diện và Ajax là tương tác nội bộ bên trong trình duyệt, giúp
cho các thay đổi sẽ được thể hiện gần như tức thì.
Mô hình sau thể hiện những gì diễn ra giữa Giao diện ứng dụng web - Ajax - và máy chủ:
Để ý là chu kỳ tương tác giữa bạn và Ajax mang tính chất ngẫu nhiên và rất thường xuyên, trong
khi đó các tương tác giữa Ajax và máy chủ xảy ra với một chu kỳ dài hơn nhiều.
Ưu điểm
Trong nhiều trường hợp, các trang web chứa rất nhiều nội dung thông thường trong trang.
Nếu sử dụng Ajax, một ứng dụng web có thể chỉ yêu cầu cho các nội dung cần thiết phải
cập nhật, do đó giảm lượng lớn băng thông và thời gian nạp trang.
Việc dùng các yêu cầu không đồng bộ (asynchronous request) cho phép giao diện người
dùng của ứng dụng hiển thị trên trình duyệt giúp người dùng trải nghiệm sự tương tác
cao, với nhiều phần riêng lẻ.
Việc sử dụng Ajax có thể làm giảm các kết nối đến server, do các mã kịch bản (script) và
các style sheet chỉ phải yêu cầu một lần.
Nhược điểm
Các trang web được tạo động không được ghi vào bộ lưu lịch sử lướt web của trình
duyệt, do đó nút "back" (quay lui) của trình duyệt sẽ mất tác dụng quay lại trang thái
trước đó của trang sử dụng Ajax, thay vào đó sẽ quay lại trang web trước đó mà người
dùng ghé thăm.
Việc cập nhật các trang web động cũng gây khó khăn cho người dùng trong việc
bookmark (đánh dấu địa chỉ yêu thích) một trạng thái nào đó của ứng dụng.
Bất kỳ người dùng nào có trình duyệt không hỗ trợ Ajax hay JavaScript, hoặc đơn giản là
đã bị vô hiệu hóa JavaScript, sẽ đương nhiên không thể sử dụng Ajax. Tương tự, các thiết
bị như điện thoại di động, PDA, và thiết bị đọc màn hình (screen reader) có thể không hỗ
trợ JavaScript hay đối tượng XMLHttp được yêu cầu. Ngoài ra, các thiết bị đọc màn hình
nếu có thể sử dụng Ajax đi nữa cũng vẫn có thể không đọc chính xác các nội dung động.
Mở ra một các thứ khác cho việc tấn công của các đoạn mã độc mà những nhà phát triển
web có thể không kiểm thử hết được.
III. Lập trình Ajax
1.Tạo đối tượng XMLHttpRequest
Trong kỹ thuật Ajax để gửi một HTTP Request đến server bằng JavaScript, ta cần tạo một đối
XMLHttpRequest.
Đối với các trình duyệt IE7+, Firefox, Chrome, Safari, và Opera thì cú pháp như sau :
xmlhttp=new XMLHttpRequest();
Đối với các phiên bản cũ của Internet Explorer (IE5 và IE6) thì sử dụng đối tượng ActiveX với
cú pháp như sau:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
Để có thể xử lý trên tất cả trình duyệt ta có cú pháp như sau:
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
2. Gửi một Request ðến một Serve
Ðể gửi một request ðến một server ,ta sử dụng phýõng thức open() và send() của
XMLHttpRequest:
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
Phýõng thức Miêu tả
open(method,url,async) method: có 2 loại request: GET or POST
url: đường dẫn của file trên server
async: true (không đồng bộ) hoặc false
(đồng bộ)
send(data) data là null:nếu method gửi request là GET
data là string:nếu method gửi là POST
2.1 Dùng GET hay POST ?
GET thì đơn giản và nhanh hơn POST và có thể dùng trong hấu hết các trường hợp.Tuy nhiên,
ta dùng POST để gửi Request khi:
Cập nhật một tập tin hoặc cơ sở dữ liệu trên máy chủ
Gửi một lượng lớn dữ liệu đến máy chủ (POST không có giới hạn kích thước)
Gửi những kí tự người dùng nhập vào (có thể chứa các ký tự không rõ), POST là mạnh
mẽ và an toàn hơn so với GET
Nếu muốn gửi thông tin với phýõng thức GET ,ta phải ðýa thông tin vào URL:
xmlhttp.open("GET","demo_get2.asp?fname=Henry&lname=Ford",true);
xmlhttp.send();
Để POST dữ liệu như một dạng HTML, pahỉ thêm một HTTP header với setRequestHeader ().
Chỉ định dữ liệu mà bạn muốn gửi trong send ():
xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
Chỉ định setRequestHeader(header,value)
header: chỉ định tên header
value: chỉ định giá trị header
2.2 Asynchronous - True or False?
Khi sử dụng async = true, chỉ định một function để thực hiện khi phản hồi đã sẵn sàng trong
sự kiện onreadystatechange.
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
Sử dụng async = false là không nên, nhưng đối với một vài yêu cầu nhỏ thì cũng nên được sữ
dụng .
Các JavaScript sẽ không tiếp tục thực hiện, cho đến khi server đã sẵn sàng.
(xmlhttp.readyState==4 && xmlhttp.status==200). Nếu server đang bận hoặc chậm, ứng
dụng sẽ treo hoặc dừng lại.
Lưu ý: Khi bạn sử dụng async = false, không được viết một hàm onreadystatechange - chỉ cần
đặt đoạn code sau method send( ):
xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
3. Xử lý Server Response
Để lấy response từ server , sử dụng thuộc tính : responseText hoặc responseXML của đối
tượng XMLHttpRequest:
Phýõng thức Miêu tả
responseText lấy dữ liệu response nhý một string
responseXML lấy dữ liệu response nhý dữ liệu XML
3.1 Thuộc tính responseText
Nếu response từ server không là XML , sử dụng thuộc tính responseText .Thuộc tính
responseText trả về dạng chuỗi .
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
3.2 Thuộc tính responseXML
Nếu response từ server là XML ,và muốn phân tách nó nhý một ðối týợng XML , ta sử dụng
thuộc tính responseXML :
xmlDoc=xmlhttp.responseXML;
var txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br />";
}
document.getElementById("myDiv").innerHTML=txt;
4.Thuộc tính onreadystatechange
Thuộc tính onreadystatechange: Sau khi gửi request đến Server, chúng ta cần một
hàm có thể nhận dữ liệu được gửi về từ Server, thuộc tính onreadystatechange sẽ xác
định hàm được gọi lên để xử lý response từ server. Hàm được lưu trong thuộc tính
onreadystatechange sẽ tự động được gọi mỗi khi ReadyState bị thay đổi.
Thuộc tính readyState: Thuộc tính này cho biết trạng thái của đối tượng request:
readyState = 0: request chưa được khởi tạo - The request is not initialized
readyState = 1: request đã được thiết lập - The request has been set up
readyState = 2: request đã được gửi - The request has been sent
readyState = 3: request đang được xử lý - The request is in process
readyState = 4: request hoàn tất - The request is complete
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
5.DemoAjax
Dữ liệu : SinhVien.xml
<DanhSach>
<SinhVien>
<MSSV>0711114</MSSV>
<HoTen>Quan Tuấn Anh</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0611305</MSSV>
<HoTen>Vũ Nguyễn Anh</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0711010</MSSV>
<HoTen>Výõng Ðình Chõn</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0711148</MSSV>
<HoTen>Trần Duy Cýõng</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0611258</MSSV>
<HoTen>Nguyễn Minh Cýờng</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0711082</MSSV>
<HoTen>Nguyễn Lê Thành Ðạt</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0711062</MSSV>
<HoTen>Ðinh Quốc Dũng</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0711059</MSSV>
<HoTen>Lýõng Minh Dũng</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0711176</MSSV>
<HoTen>Nguyễn Thùy Dýõng</HoTen>
</SinhVien>
<SinhVien>
<MSSV>0711163</MSSV>
<HoTen>Hồ Thị Xuân Hạ</HoTen>
</SinhVien>
</DanhSach>
Tạo file :DemoAjax.jsp
<html>
<head>
<title>DemoRequestXML</title>
<script type="text/javascript">
function loadXMLDoc()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
txt="<table border='1'><tr><th>MSSV</th><th>SinhVien</th></tr>";
x=xmlhttp.responseXML.documentElement.getElementsByTagName("SinhVien");
for (i=0;i<x.length;i++)
{
txt=txt + "<tr>";
xx=x[i].getElementsByTagName("MSSV");
{
try
{
txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
}
catch (er)
{
txt=txt + "<td> </td>";
}
}
xx=x[i].getElementsByTagName("HoTen");
{
try
{
txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
}
catch (er)
{
txt=txt + "<td> </td>";
}
}
txt=txt + "</tr>";
}
txt=txt + "</table>";
document.getElementById('txtThongtinsinhvien').innerHTML=txt;
}
}
xmlhttp.open("GET","SinhVien.xml",true);
xmlhttp.send();
}
</script>
</head>
<body>
Demo Ajax -Group 2- TT0701-HUFLIT
<hr>
<div id="txtThongtinsinhvien">
<button onClick="loadXMLDoc()">Xem thông tin sinh viên</button>
</div>
<hr>
</body>
</html>
Chương trình ban đầu :
Sau khi xử lý Ajax:
Tài liệu tham khảo:
www.w3schools.com
www.wikipedia.org
Và các nguồn khác…
--- Hết ---

More Related Content

What's hot

Giới thiệu và sử dụng aja xr40
Giới thiệu và sử dụng aja xr40Giới thiệu và sử dụng aja xr40
Giới thiệu và sử dụng aja xr40
timtailieucntt
 
Ajax control toolkit
Ajax control toolkitAjax control toolkit
Ajax control toolkit
Nguyen Huy
 
Bai1 gioi thieu_servlet_va_jsp_8952
Bai1 gioi thieu_servlet_va_jsp_8952Bai1 gioi thieu_servlet_va_jsp_8952
Bai1 gioi thieu_servlet_va_jsp_8952
Ham Chơi
 
3.tao mot ket noi toi co so du lieu dung c#
3.tao mot ket noi toi co so du lieu dung c#3.tao mot ket noi toi co so du lieu dung c#
3.tao mot ket noi toi co so du lieu dung c#
Dao Uit
 

What's hot (19)

Cách sử dụng tên miền thật khi chạy website ở localhost
Cách sử dụng tên miền thật khi chạy website ở localhostCách sử dụng tên miền thật khi chạy website ở localhost
Cách sử dụng tên miền thật khi chạy website ở localhost
 
Dos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comDos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.com
 
Kiem tra javascript
Kiem tra javascriptKiem tra javascript
Kiem tra javascript
 
Giới thiệu và sử dụng aja xr40
Giới thiệu và sử dụng aja xr40Giới thiệu và sử dụng aja xr40
Giới thiệu và sử dụng aja xr40
 
Ung dun web chuong 2
Ung dun web  chuong 2Ung dun web  chuong 2
Ung dun web chuong 2
 
Ajax control toolkit
Ajax control toolkitAjax control toolkit
Ajax control toolkit
 
Ajax
AjaxAjax
Ajax
 
Bai3 basic servlets_956
Bai3 basic servlets_956Bai3 basic servlets_956
Bai3 basic servlets_956
 
Tăng tốc toàn diện cho Firefox
Tăng tốc toàn diện cho FirefoxTăng tốc toàn diện cho Firefox
Tăng tốc toàn diện cho Firefox
 
Lập trình web – cgi
Lập trình web – cgiLập trình web – cgi
Lập trình web – cgi
 
Bai4 basic jsp_4474
Bai4 basic jsp_4474Bai4 basic jsp_4474
Bai4 basic jsp_4474
 
Bai tap java_script-html-2016
Bai tap java_script-html-2016Bai tap java_script-html-2016
Bai tap java_script-html-2016
 
Bai1 gioi thieu_servlet_va_jsp_8952
Bai1 gioi thieu_servlet_va_jsp_8952Bai1 gioi thieu_servlet_va_jsp_8952
Bai1 gioi thieu_servlet_va_jsp_8952
 
Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet
 
Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and Authorization
 
3.tao mot ket noi toi co so du lieu dung c#
3.tao mot ket noi toi co so du lieu dung c#3.tao mot ket noi toi co so du lieu dung c#
3.tao mot ket noi toi co so du lieu dung c#
 
Ebook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoEbook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng cao
 
Bài tập javascript
Bài tập javascriptBài tập javascript
Bài tập javascript
 
Tu hoc javascript
Tu hoc javascriptTu hoc javascript
Tu hoc javascript
 

Viewers also liked

Web course php ajax
Web course   php ajaxWeb course   php ajax
Web course php ajax
慂 志慂
 

Viewers also liked (6)

Giao Trinh Jquery
Giao Trinh JqueryGiao Trinh Jquery
Giao Trinh Jquery
 
Web course php ajax
Web course   php ajaxWeb course   php ajax
Web course php ajax
 
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPTBÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
 
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầuTài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
 
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPTBÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 

Similar to Ajax report

Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việc
manhvokiem
 

Similar to Ajax report (20)

Php 01 modau
Php 01 modauPhp 01 modau
Php 01 modau
 
Asp
AspAsp
Asp
 
Ung dung web chuong 5
Ung dung web  chuong 5Ung dung web  chuong 5
Ung dung web chuong 5
 
Net06 asp.net applications & state management
Net06 asp.net applications & state managementNet06 asp.net applications & state management
Net06 asp.net applications & state management
 
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 
Java script
Java scriptJava script
Java script
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
Lập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnLập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biến
 
Bai tap php_m123
Bai tap php_m123Bai tap php_m123
Bai tap php_m123
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-z
 
JSP and Database
JSP and DatabaseJSP and Database
JSP and Database
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.net
 
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAYLuận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
 
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
Asp.net mvc 3 (c#) (9 tutorials)   egroups vnAsp.net mvc 3 (c#) (9 tutorials)   egroups vn
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Web Architecture
Web ArchitectureWeb Architecture
Web Architecture
 
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việc
 
Asp net
Asp netAsp net
Asp net
 

Recently uploaded

Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
DungxPeach
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
Xem Số Mệnh
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
dangdinhkien2k4
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
ChuThNgnFEFPLHN
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
hoangtuansinh1
 

Recently uploaded (20)

xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 

Ajax report

  • 1. AJAX Đề tài : Công nghệ Ajax trong website  Phan Minh Tuấn  Đặng Phước Thưởng  Lê Văn Huy Nhóm 2 – TT0701 Trường Đại Học Ngoại Ngữ Tin Học TPHCM TP Hồ Chí Minh , Ngày 9 Tháng 11 năm 2010 Giảng viên hướng dẫn : Huỳnh Ngọc Tín
  • 2. NHẬN XÉT CỦA GIẢNG VIÊN  ……………………………………………………….. ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………… ……………………………………………………………………..… ……………………………………………………………………… ……………………………………………………………
  • 3. I. Ajax là gì? AJAX (tiếng Anh), viết tắt cho "Asynchronous JavaScript and XML", nghĩa là "JavaScript và XML không đồng bộ". Từ Ajax được ông Jesse James Garrett tạo ra và dùng lần đầu tiên vào tháng 2 nãm 2005 để chỉ kỹ thuật này, mặc dù các hỗ trợ cho Ajax đã có trên các chương trình duyệt từ 10 nãm trước. Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết hợp các ngôn ngữ: HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủ web. (Mặc dù, việc trao đổi này có thể được thực hiện với nhiều định dạng như HTML, văn bản thường, JSON và thậm chí EBML, nhưng XML là ngôn ngữ thường được sử dụng). XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nào cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text), JSON và ngay cả EBML. Các trình duyệt hỗ trợ Ajax: Apple Safari từ 1.2 trở lên Konqueror Microsoft Internet Explorer từ 4.0 trở lên Mozilla/Mozilla Firefox từ 1.0 trở lên Netscape từ 7.1 trở lên Opera từ 8.0 trở lên GreenBrowser 4.3 Google Suggest Ajax được làm phổ biến vào năm 2005 bởi Google, với Google Suggest. Google Suggest dùng Ajax để tạo ra một giao diện web rất sinh động, khi bạn gõ phím trong textbox tìm kiếm của Google, một JavaScript gửi những kí tự đến server và server trả về một danh sách các gợi ý rất gần gũi với từ khóa ta nhập vào. II. Ajax hoạt động thế nào? So sánh với các ứng dụng web truyền thống Điểm khác biệt cơ bản nhất của công nghệ này là việc xử lý thông tin được thực hiện trên máy thân chủ (Client) thay vì máy phục vụ (Server) như cách truyền thống. Máy chủ chỉ làm một việc đơn giản là nhận thông tin từ máy khách và trả các dữ liệu về cho máy khách. Máy khách xử lý sơ bộ thông tin của người dùng nhập vào, sau đó chuyển về máy chủ rồi nhận dữ liệu từ máy chủ và xử lý để hiển thị cho người dùng.
  • 4. Một trong những điểm mấu chốt của công nghệ Ajax là bạn không tương tác trực tiếp với máy chủ như cách truyền thống mà là qua một lớp trung gian của Ajax. Có thể bạn sẽ hỏi phải chăng như vậy thì sẽ làm cho cơ chế hoạt động phải qua thêm một bước trung gian và sẽ làm chậm hơn nữa quá trình tương tác? Thắc mắc trên là hoàn toàn có lý, tuy nhiên, thực tế lại ngược lại: sử dụng Gmail bạn có cảm giác mọi thứ nhanh hơn. Lý do là: Không phải lúc nào bạn cũng cần phải tương tác với máy chủ. Như trong trường hợp của Gmail, một khi giao diện của Gmail đã được tải về xong (để ý khoảng thời gian ngắn từ khi bạn đăng nhập cho đến khi giao diện của Gmail xuất hiện) thì những tác vụ như chuyển từ thư mục này sang xem thư mục khác không nhất thiết phải hỏi lại máy chủ (tất nhiên với điều kiện dữ liệu đã có sẵn) Bằng cách chỉ nhận những thông tin cần thiết (ở dạng XML), dung lượng truyền tải giữa máy tính của bạn và máy chủ sẽ giảm đi rất nhiều. Sau khi bạn giao diện đã được tải về 1 lần, Ajax sẽ không cần phải tải lại toàn bộ giao diện đó mỗi khi tương tác với máy chủ. Thay vào đó, Ajax sẽ gởi yêu cầu đến máy chủ và nhận kết quả từ máy chủ về những gì đã thay đổi sau khi máy chủ thực hiện yêu cầu đó. Ajax sau đó sẽ thông báo cho phần giao diện (thông qua các lời gọi Javascript) thực hiện các thay đổi tương ứng trên giao diện. Tương tác giữa phần giao diện và Ajax là tương tác nội bộ bên trong trình duyệt, giúp cho các thay đổi sẽ được thể hiện gần như tức thì.
  • 5. Mô hình sau thể hiện những gì diễn ra giữa Giao diện ứng dụng web - Ajax - và máy chủ: Để ý là chu kỳ tương tác giữa bạn và Ajax mang tính chất ngẫu nhiên và rất thường xuyên, trong khi đó các tương tác giữa Ajax và máy chủ xảy ra với một chu kỳ dài hơn nhiều. Ưu điểm Trong nhiều trường hợp, các trang web chứa rất nhiều nội dung thông thường trong trang. Nếu sử dụng Ajax, một ứng dụng web có thể chỉ yêu cầu cho các nội dung cần thiết phải cập nhật, do đó giảm lượng lớn băng thông và thời gian nạp trang.
  • 6. Việc dùng các yêu cầu không đồng bộ (asynchronous request) cho phép giao diện người dùng của ứng dụng hiển thị trên trình duyệt giúp người dùng trải nghiệm sự tương tác cao, với nhiều phần riêng lẻ. Việc sử dụng Ajax có thể làm giảm các kết nối đến server, do các mã kịch bản (script) và các style sheet chỉ phải yêu cầu một lần. Nhược điểm Các trang web được tạo động không được ghi vào bộ lưu lịch sử lướt web của trình duyệt, do đó nút "back" (quay lui) của trình duyệt sẽ mất tác dụng quay lại trang thái trước đó của trang sử dụng Ajax, thay vào đó sẽ quay lại trang web trước đó mà người dùng ghé thăm. Việc cập nhật các trang web động cũng gây khó khăn cho người dùng trong việc bookmark (đánh dấu địa chỉ yêu thích) một trạng thái nào đó của ứng dụng. Bất kỳ người dùng nào có trình duyệt không hỗ trợ Ajax hay JavaScript, hoặc đơn giản là đã bị vô hiệu hóa JavaScript, sẽ đương nhiên không thể sử dụng Ajax. Tương tự, các thiết bị như điện thoại di động, PDA, và thiết bị đọc màn hình (screen reader) có thể không hỗ trợ JavaScript hay đối tượng XMLHttp được yêu cầu. Ngoài ra, các thiết bị đọc màn hình nếu có thể sử dụng Ajax đi nữa cũng vẫn có thể không đọc chính xác các nội dung động. Mở ra một các thứ khác cho việc tấn công của các đoạn mã độc mà những nhà phát triển web có thể không kiểm thử hết được. III. Lập trình Ajax 1.Tạo đối tượng XMLHttpRequest Trong kỹ thuật Ajax để gửi một HTTP Request đến server bằng JavaScript, ta cần tạo một đối XMLHttpRequest. Đối với các trình duyệt IE7+, Firefox, Chrome, Safari, và Opera thì cú pháp như sau : xmlhttp=new XMLHttpRequest(); Đối với các phiên bản cũ của Internet Explorer (IE5 và IE6) thì sử dụng đối tượng ActiveX với cú pháp như sau: xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); Để có thể xử lý trên tất cả trình duyệt ta có cú pháp như sau: if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
  • 7. 2. Gửi một Request ðến một Serve Ðể gửi một request ðến một server ,ta sử dụng phýõng thức open() và send() của XMLHttpRequest: xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send(); Phýõng thức Miêu tả open(method,url,async) method: có 2 loại request: GET or POST url: đường dẫn của file trên server async: true (không đồng bộ) hoặc false (đồng bộ) send(data) data là null:nếu method gửi request là GET data là string:nếu method gửi là POST 2.1 Dùng GET hay POST ? GET thì đơn giản và nhanh hơn POST và có thể dùng trong hấu hết các trường hợp.Tuy nhiên, ta dùng POST để gửi Request khi: Cập nhật một tập tin hoặc cơ sở dữ liệu trên máy chủ Gửi một lượng lớn dữ liệu đến máy chủ (POST không có giới hạn kích thước) Gửi những kí tự người dùng nhập vào (có thể chứa các ký tự không rõ), POST là mạnh mẽ và an toàn hơn so với GET Nếu muốn gửi thông tin với phýõng thức GET ,ta phải ðýa thông tin vào URL: xmlhttp.open("GET","demo_get2.asp?fname=Henry&lname=Ford",true); xmlhttp.send(); Để POST dữ liệu như một dạng HTML, pahỉ thêm một HTTP header với setRequestHeader (). Chỉ định dữ liệu mà bạn muốn gửi trong send (): xmlhttp.open("POST","ajax_test.asp",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("fname=Henry&lname=Ford"); Chỉ định setRequestHeader(header,value) header: chỉ định tên header value: chỉ định giá trị header
  • 8. 2.2 Asynchronous - True or False? Khi sử dụng async = true, chỉ định một function để thực hiện khi phản hồi đã sẵn sàng trong sự kiện onreadystatechange. xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send(); Sử dụng async = false là không nên, nhưng đối với một vài yêu cầu nhỏ thì cũng nên được sữ dụng . Các JavaScript sẽ không tiếp tục thực hiện, cho đến khi server đã sẵn sàng. (xmlhttp.readyState==4 && xmlhttp.status==200). Nếu server đang bận hoặc chậm, ứng dụng sẽ treo hoặc dừng lại. Lưu ý: Khi bạn sử dụng async = false, không được viết một hàm onreadystatechange - chỉ cần đặt đoạn code sau method send( ): xmlhttp.open("GET","ajax_info.txt",false); xmlhttp.send(); document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 3. Xử lý Server Response Để lấy response từ server , sử dụng thuộc tính : responseText hoặc responseXML của đối tượng XMLHttpRequest: Phýõng thức Miêu tả responseText lấy dữ liệu response nhý một string responseXML lấy dữ liệu response nhý dữ liệu XML 3.1 Thuộc tính responseText Nếu response từ server không là XML , sử dụng thuộc tính responseText .Thuộc tính responseText trả về dạng chuỗi . document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 3.2 Thuộc tính responseXML
  • 9. Nếu response từ server là XML ,và muốn phân tách nó nhý một ðối týợng XML , ta sử dụng thuộc tính responseXML : xmlDoc=xmlhttp.responseXML; var txt=""; x=xmlDoc.getElementsByTagName("ARTIST"); for (i=0;i<x.length;i++) { txt=txt + x[i].childNodes[0].nodeValue + "<br />"; } document.getElementById("myDiv").innerHTML=txt; 4.Thuộc tính onreadystatechange Thuộc tính onreadystatechange: Sau khi gửi request đến Server, chúng ta cần một hàm có thể nhận dữ liệu được gửi về từ Server, thuộc tính onreadystatechange sẽ xác định hàm được gọi lên để xử lý response từ server. Hàm được lưu trong thuộc tính onreadystatechange sẽ tự động được gọi mỗi khi ReadyState bị thay đổi. Thuộc tính readyState: Thuộc tính này cho biết trạng thái của đối tượng request: readyState = 0: request chưa được khởi tạo - The request is not initialized readyState = 1: request đã được thiết lập - The request has been set up readyState = 2: request đã được gửi - The request has been sent readyState = 3: request đang được xử lý - The request is in process readyState = 4: request hoàn tất - The request is complete xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } 5.DemoAjax Dữ liệu : SinhVien.xml <DanhSach> <SinhVien>
  • 10. <MSSV>0711114</MSSV> <HoTen>Quan Tuấn Anh</HoTen> </SinhVien> <SinhVien> <MSSV>0611305</MSSV> <HoTen>Vũ Nguyễn Anh</HoTen> </SinhVien> <SinhVien> <MSSV>0711010</MSSV> <HoTen>Výõng Ðình Chõn</HoTen> </SinhVien> <SinhVien> <MSSV>0711148</MSSV> <HoTen>Trần Duy Cýõng</HoTen> </SinhVien> <SinhVien> <MSSV>0611258</MSSV> <HoTen>Nguyễn Minh Cýờng</HoTen> </SinhVien> <SinhVien> <MSSV>0711082</MSSV> <HoTen>Nguyễn Lê Thành Ðạt</HoTen> </SinhVien> <SinhVien> <MSSV>0711062</MSSV> <HoTen>Ðinh Quốc Dũng</HoTen> </SinhVien> <SinhVien> <MSSV>0711059</MSSV> <HoTen>Lýõng Minh Dũng</HoTen> </SinhVien> <SinhVien> <MSSV>0711176</MSSV> <HoTen>Nguyễn Thùy Dýõng</HoTen> </SinhVien> <SinhVien> <MSSV>0711163</MSSV> <HoTen>Hồ Thị Xuân Hạ</HoTen> </SinhVien> </DanhSach> Tạo file :DemoAjax.jsp <html> <head> <title>DemoRequestXML</title> <script type="text/javascript"> function loadXMLDoc() { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  • 11. } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { txt="<table border='1'><tr><th>MSSV</th><th>SinhVien</th></tr>"; x=xmlhttp.responseXML.documentElement.getElementsByTagName("SinhVien"); for (i=0;i<x.length;i++) { txt=txt + "<tr>"; xx=x[i].getElementsByTagName("MSSV"); { try { txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>"; } catch (er) { txt=txt + "<td> </td>"; } } xx=x[i].getElementsByTagName("HoTen"); { try { txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>"; } catch (er) { txt=txt + "<td> </td>"; } } txt=txt + "</tr>"; } txt=txt + "</table>"; document.getElementById('txtThongtinsinhvien').innerHTML=txt; } } xmlhttp.open("GET","SinhVien.xml",true); xmlhttp.send(); } </script> </head> <body> Demo Ajax -Group 2- TT0701-HUFLIT <hr> <div id="txtThongtinsinhvien"> <button onClick="loadXMLDoc()">Xem thông tin sinh viên</button> </div> <hr> </body> </html> Chương trình ban đầu :
  • 12. Sau khi xử lý Ajax: Tài liệu tham khảo: www.w3schools.com www.wikipedia.org Và các nguồn khác… --- Hết ---