Professional Documents
Culture Documents
Ajax
Ajax
NI DUNG
Ajax l g?
u im ca cng ngh Ajax
Cc ng dng Ajax
Cc cng ngh trong Ajax
Cch s dng Ajax
Hn ch
Tng lai
NI DUNG
Ajax l g?
u im ca cng ngh Ajax
Cc ng dng Ajax
Cc cng ngh trong Ajax
Cch s dng Ajax
Hn ch
Tng lai
AJAX L G?
AJAX L G?
AJAX, vit tt cho "Asynchronous JavaScript and XML.
AJAX l tp hp ca nhiu cng ngh vi th mnh ca
ring mnh to thnh mt sc mnh mi. AJAX bao gm:
Th hin web theo tiu chun XHTML v CSS, cc chun
ca W3C, c Firefox (Mozilla), Safari (Apple), Opera,
Netscape 8.0 (nhn Firefox) h tr rt tt.
Nng cao tnh nng ng v phn hi bng DOM
(Document Object Model) - mt chun ca W3C
Trao i v x l d liu bng XML v XSLT - mt chun
ca W3C
Truy cp d liu theo kiu bt ng b (asynchronous)
bng XMLHttpRequest
V tt c cc cng ngh trn c lin kt li vi nhau 5
bng JavaScript.EBML.
NI DUNG
Ajax l g?
u im ca cng ngh Ajax
Cc ng dng Ajax
Cc cng ngh trong Ajax
Cch s dng Ajax
Hn ch
Tng lai
POST/GET method
Ch
i response t server
Server
AJAX
10
AJAX
Tng tc t nhin
Khng cn click
chut
Di chuyn chut cng l mt s kin tng tc
Data-driven
Giao din vn c diu khin bn pha Client trong
khi server x l yu cu
11
AJAX
S
d ng ph ng th c giao ti p b t
ng b :
Lm
iu hnh
12
NI DUNG
Ajax l g?
u im ca cng ngh Ajax
Cc ng dng Ajax
Cc cng ngh trong Ajax
Cch s dng Ajax
Hn ch
Tng lai
13
CC NG DNG CA AJAX
14
CC NG DNG CA AJAX
15
V D: GOOGLE EARTH
16
V D: GOOGLE EARTH
C th co gin, ko bn mt cch t nhin
D liu c load mt cch t nhin vng xung
quang bn hin ti.
Thc t
D
NI DUNG
Ajax l g?
u im ca cng ngh Ajax
Cc ng dng Ajax
Cc cng ngh trong Ajax
Cch s dng Ajax
Hn ch
Tng lai
18
Javascript
JavaScript l mt ngn ng lp trnh a nng
Hm JavaScript c gi khi c mt s kin xy ra
Gn kt cc thnh phn khc ca AJAX.
DOM
Cc API truy cp v thao tc trn cc ti liu c cu trc
S dng trong ti liu XML v HTML
CSS
Cho php thay i cc th hin ca cc th HTML, s
thay i ny nh vo cc hm JavaScript thc hin.
XMLHttpRequest
L mt i tng JavaScript dng kt ni bt ng
b vi server. L i tng trng tm ca AJAX
19
JAVASCRIPT
JavaScript
<body>
<script language=JavaScript>
//JavaSript code
</Script>
</body>
</html>
20
JAVASCRIPT
Cc
gii hn ca JavaSript
JavaScript
JAVASCRIPT
<html>
<head>
<title>V d JavaScript</title>
<script language=JavaScript>
alert(Hello! Welcome to JavaScript);
</script>
</head>
<body>
</body>
</html>
22
DOM
23
V D DOM
window.onload=function()
{
var hello=document.getElementById('hello');
hello.className='declared';
var empty=document.getElementById('empty');
addNode(empty,"reader of");
addNode(empty,"Ajax in Action!");
var children=empty.childNodes;
for (var i=0;i<children.length;i++)
children[i].className='programmed';
}
24
CSS
Cascading Style Sheets cung cp mt s nht qun
trn cm quan look and feel cho ng dng v kh
nng thao tc mnh m vi DOM. i tng
XMLHttpRequest (hay mt c ch tng ng no
o) c dng lin lc mt cch bt ng b vi
server, m bo vic gi yu cu ngi dng v ti
np d liu trong khi ngi dng vn lm vic.
Vi cc thnh phn inh dng trc quan nh mu
sc, l, hnh nn, tnh trong sut, kch c, stylesheet
co th xc inh cch m cc phn t c b tr
quan h vi cc phn t khc v tng tc vi ngi
dng, cho php cc hiu ng kh mnh m.
25
CC U IM CA CSS
26
CC U IM CA CSS
27
XMLHTTPREQUEST METHODS
send(content)
Phng thc ny thc hin gi request ti server.
abort()
Hy request hin thi.
getAllResponseHeaders()
Tr v tt c cc response header cho HTTP request d i
dng cp key/value.
getResponseHeader(header)
Tr v gi tr kiu string ca header xc nh.
setRequestHeader(label,value)
Thit lp header xc nh cho gi tr cung cp. open() ph i
c gi trc khi c gng thit lp bt k mt header no.
28
XMLHTTPREQUEST PROPERTIES
onreadystatechange
B x l s kin cho
uninitialized
1 = loading
2 = loaded
3 = interactive (some data has been returned)
4 = complete
status
M trng thi
29
XMLHTTPREQUEST PROPERTIES
responseText
Response
responseXML
tr v t server di dng XML. i tng
ny c th c phn tch v kho st nh mt i
tng ti liu DOM.
Response
statusText
ip ca m trng thi HTTP (chng hn OK
hay Not Found, ).
Thng
30
NI DUNG
Ajax l g?
u im ca cng ngh Ajax
Cc ng dng Ajax
Cc cng ngh trong Ajax
Cch s dng Ajax
Hn ch
Tng lai
31
32
CC BC THC HIN
Mt s kin c gi thc hin Client
2. XMLHttpRequest object c to ra
3. XMLHttpRequest object c nh dng
4. XMLHttpRequest object gi yu cu bt
ng b
5. Server gi tr v kt qu cha bn trong
ti liu XML
6. XMLHttpRequest object gi hm
callback() v x l kt qu
7. HTML DOM c cp nht
1.
33
CLIENT
JavaScript c gi thc hin kt qu
cho s kin trn
V d: Hm validateUserId() c gi trong
s kin onkeyup ca form userid
Hm
<input
34
XMLHTTPREQUEST OBJECT
var req;
function initRequest() {
if (window.XMLHttpRequest) {
req = new XMLHttpRequest(); }
else if (window.ActiveXObject) {
isIE = true;
req = new ActiveXObject("Microsoft.XMLHTTP");}
function validateUserId() {
initRequest();
req.onreadystatechange = processRequest;
if (!target) target = document.getElementById("userid");
req.send(null);
35
XMLHTTPREQUEST OBJECT C
NG K VI MT HM CALLBACK
function initRequest() {
if (window.XMLHttpRequest) {
req = new XMLHttpRequest(); }
else if (window.ActiveXObject) {
isIE = true;
req = new ActiveXObject("Microsoft.XMLHTTP"); }
}
function validateUserId() {
initRequest();
req.onreadystatechange = processRequest; // callback function
if (!target) target = document.getElementById("userid");
var url = "validate?id=" + escape(target.value);
req.open("GET", url, true);
req.send(null);
}
36
XMLHTTPREQUEST OBJECT
GI YU CU BT NG B
function initRequest() {
if (window.XMLHttpRequest) {
req = new XMLHttpRequest(); }
else if (window.ActiveXObject) {
isIE = true;
req = new ActiveXObject("Microsoft.XMLHTTP");}
}
function validateUserId() {
initRequest();
req.onreadystatechange = processRequest;
if (!target) target = document.getElementById("userid");
var url = "validate?id=" + escape(target.value);
req.open("GET", url, true);
req.send(null); }
URL is set to validate?id=greg
37
SERVER TR KT QU XML
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException,
ServletException {
String targetId = request.getParameter("id");
if ((targetId != null) &&!
accounts.containsKey(targetId.trim())) {
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write("<valid>true</valid>"); }
else {
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write("<valid>false</valid>"); }
38
XMLHTTPREQUEST OBJECT
GI HM CALLBACK() V X L
KT QU
XMLHttpRequest object c ng k gi hm
processRequest() khi c thay i thuc tnh
readyState ca XMLHttpRequest object
function processRequest() {
if (req.readyState == 4) {
if (req.status == 200) {
var message = ...;
39
document.getElementById("userIdMessage"), hm ny
tr v ID ca "userIdMessage"
JavaScript c dng hiu chnh cc thuc tnh
element; hiu chnh cc property ca element; hoc
thm, xa, hiu chnh element con.
40
<script type="text/javascript">
function setMessageUsingDOM(message) {
var userMessageElement =
document.getElementById("userIdMessage");
var messageText;
if (message == "false") {
userMessageElement.style.color = "red";
messageText = "Invalid User Id";
} else {
userMessageElement.style.color = "green";
messageText = "Valid User Id";
}
var messageBody =
document.createTextNode(messageText)
41
if (userMessageElement.childNodes[0]) {
userMessageElement.replaceChild(messageBody,
userMessageElement.childNodes[0]);
} else {
userMessageElement.appendChild(messageBody); }
</script>
<body>
<div id="userIdMessage"></div>
</body>
42
NI DUNG
Ajax l g?
u im ca cng ngh Ajax
Cc ng dng Ajax
Cc cng ngh trong Ajax
Cch s dng Ajax
Hn ch
Tng lai
43
CC HN CH CA AJAX
Phc tp
S lin kt gia server
ang bn Beta
44
CC HN CH CA AJAX
NI DUNG
Ajax l g?
u im ca cng ngh Ajax
Cc ng dng Ajax
Cc cng ngh trong Ajax
Cch s dng Ajax
Hn ch
Tng lai
46
TNG LAI
AJAX
AJAX-enabled
47
48