Professional Documents
Culture Documents
Nhap Mon Ajax 0164
Nhap Mon Ajax 0164
Created by TempAIDS
Created by TempAIDS
thc thi trn pha client. B li nhng hn ch trn, applet c chy trn mt m hnh bo mt kiu
sandbox bo v ngi dng khi cc on m nguy him.
C nhng lc applet c s dng rt nhiu, nhng n cng c nhng vn ny sinh: l s ph
thuc vo my o Java JVM, cc applet ch thc thi khi c mi trng thch hp c ci t pha
client, hn na tc ca cc applet l tng i chm v th applet khng phi l gii php ti u cho
Web ng.
3. JavaScript
Cng thi gian ny, Netscape to ra mt ngn ng kch bn gi l JavaScript. JavaScript c thit
k vic pht trin d dng hn cho cc nh thit k Web v cc lp trnh vin khng thnh tho Java.
(Microsoft cng c mt ngn ng kch bn gi l VBScript). JavaScript ngay lp tc tr thnh mt
phng php hiu qu to ra cc trang Web ng.
Vic ngi ta coi cc trang nh l mt i tng lm ny sinh mt khi nim mi gi l Document
Object Model (DOM). Lc u th JavaScript v DOM c mt s kt hp cht ch nhng sau chng
c phn tch. DOM hon ton l cch biu din hng i tng ca trang Web v n c th c
sa i vi cc ngn ng kch bn bt k nh JavaScript hay
Created by TempAIDS
hin ca nhiu k thut mi nh blog (hay weblog), wiki... web mi tr nn c tnh cng ng (v
cng tc) hn v tr nn gn hn vi s k vng v kh nng thc s ca n.
Khi nim Web 2.0 u tin c Dale Dougherty, ph ch tch ca OReilly Media, a ra ti hi
tho Web 2.0 ln th nht do OReilly Media v MediaLive International t chc vo thng 10/2004.
Dougherty khng a ra nh ngha m ch dng cc v d so snh phn bit Web 1.0 v Web 2.0:
"DoubleClick l Web 1.0; Google AdSense l Web 2.0. Ofoto l Web 1.0; Flickr l Web 2.0. Britannica
Online l Web 1.0; Wikipedia l Web 2.0. v.v...".
Sau Tim OReilly, ch tch kim gim c iu hnh OReilly Media, c kt li 7 c tnh
ca Web 2.0:
1. Web c vai tr nn tng, c th chy mi ng dng
2. Tp hp tr tu cng ng
3.
4.
5.
6.
7.
Thot u, Web 2.0 c ch trng ti yu t cng ngh, nhn mnh ti vai tr nn tng ng dng.
Nhng n hi tho Web 2.0 ln 2 t chc vo thng 10/2005, Web 2.0 c nhn mnh n tnh cht
su xa hn yu t cng ng.
Thc t, ng dng trn web l thnh phn rt quan trng ca Web 2.0. Hng lot cng ngh mi c
pht trin nhm lm cho ng dng trn web mnh hn, nhanh hn v d s dng hn, c xem l nn
tng ca Web 2.0.
Kin trc cng ngh ca Web 2.0 hin vn ang pht trin nhng c bn bao gm: phn mm my ch,
c ch cung cp ni dung, giao thc truyn thng, trnh duyt v ng dng.
Cung cp ni dung
Bc pht trin u tin v quan trng nht hng n Web 2.0 l c ch cung cp ni dung, s
dng cc giao thc chun ho cho php ngi dng s dng thng tin theo cch ca mnh (ngha l
c kh nng ty bin thng tin). C nhiu giao thc c pht trin cung cp ni dung nh RSS,
RDF v Atom, tt c u da trn XML. Ngoi ra cn c cc giao thc c bit nh FOAF v XFN
dng m rng tnh nng ca website hay cho php ngi dng tng tc.
Dch v web
Cc giao thc truyn thng 2 chiu l mt trong nhng thnh phn then cht ca kin trc Web 2.0. C
hai loi giao thc chnh l REST v SOAP. REST (Representation State Transfer) l dng yu cu dch
v web m my khch truyn i trng thi ca tt c giao dch; cn SOAP (Simple Object Access
www.my-ebooks.tk
Created by TempAIDS
Protocol) th ph thuc my ch trong vic duy tr thng tin trng thi. Vi c hai loi, dch v web u
c gi qua API. Ngn ng chung ca dch v web l XML, nhng c th c ngoi l.
Mt v d in hnh ca giao thc truyn thng th h mi l Object Properties Broadcasting Protocol
do Chris Dockree pht trin. Giao thc ny cho php cc i tng o (tn ti trn web) t bit chng
"l g v c th lm g, nh vy c th t lin lc vi nhau khi cn.
Phn mm my ch
Web 2.0 c xy dng trn kin trc web th h trc nhng ch trng hn n phn mm lm vic
background. C ch cung cp ni dung ch khc phng thc cp pht ni dung ng (ca Web 1.0) v
danh ngha, tuy nhin dch v web yu cu tin trnh lm vic v d liu cht ch hn.
Cc gii php pht trin theo hng Web 2.0 hin nay c th phn lm hai loi: hoc xy dng hu ht
tnh nng trn mt nn tng my ch duy nht; hoc xy dng ng dng "gn thm" cho my ch web,
c s dng giao tip API.
AJAX l g ?
Sau y l nh ngha ca Garrett v Ajax:
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
Cc vn ny sinh v s ra i ca AJAX
Trc khi tm hiu ti sao Ajax li c xem l "cu tinh" ca cc ng dng Web, hy th phn tch
nhng gii hn ca cc ng dng web hin ti khin n cha th thay th cho cc phn mm pha client
truyn thng.
Ch cch y vi nm, khi m cc dch v web bng n, ngi ta ngh n mt lc no tt c cc
ng dng m ta s dng s l cc ng dng Web thay v cc phn mm chy c lp trn cc my tnh
n l. Qu tht, vi s pht trin chng mt ca mng Internet cng vi nhng u im ca cc ng
dng Web (truy cp ti mi ni, khng cn nng cp,), tng lai ca cc phn mm chc chn s gn
cht vi cc ng dng Web, nu khng mun ni l c th s b thay th. Tuy nhin, cho n gi, gic
m vn cha thnh s tht v ngi ta bt u ngh rng, c l n s khng bao gi tr thnh s
tht.
Ti sao vy? Bi v mt trong nhng gii hn quan trng ca cc ng dng Web hin ti l cch thc
www.my-ebooks.tk
Created by TempAIDS
www.my-ebooks.tk
Created by TempAIDS
Gi yu cu (request) n server
Phn tch v lm vic vi XML
Ajax cho php to ra mt Ajax Engine nm gia giao tip ny. Khi , cc yu cu gi resquest v
nhn response do Ajax Engine thc hin. Thay v tr d liu di dng HTML v CSS trc tip cho
trnh duyt, web server c th gi tr d liu dng XML v Ajax Engine s tip nhn, phn tch v
chuyn ha thnh XHTML + CSS cho trnh duyt hin th.
Vic ny c thc hin trn client nn gim ti rt nhiu cho server, ng thi ngi s dng cm
thy kt qu x l c hin th tc th m khng cn np li trang. Mt khc, s kt hp ca cc cng
ngh web nh CSS v XHTML lm cho vic trnh by giao din trang web tt hn nhiu v gim ng
k dung lng trang phi np. y l nhng li ch ht sc thit thc m Ajax em li.
C th nhn vo 2 hnh v so snh hai m hnh ng dng Web: truyn thng v s dng Ajax.
www.my-ebooks.tk
Created by TempAIDS
R rng im khc bit l thay v phi ti c trang web th vi AJAX ta ch cn ti v phn ca trang
Web mun thay i. iu ny gip cho ng dng web ca phn hi nhanh hn, thng minh hn. Ngoi
www.my-ebooks.tk
Created by TempAIDS
Created by TempAIDS
www.my-ebooks.tk
Created by TempAIDS
VI, Cc cng ngh trong AJAX - CSS - C php & thuc tnh
CSS Style.
C php c bn ca CSS
C php ca CSS gm ba thnh phn:
Created by TempAIDS
www.my-ebooks.tk
Created by TempAIDS
This is a paragraph
</p>
Created by TempAIDS
ca trang web hin thi qua mt bin ton cc gi l document, bin ny l im bt u ca mi thao
tc trn DOM. Phn t DOM c c t bi W3C. Mi phn t DOM c mt phn t cha duy
nht, c hoc khng c cc phn t con, v c mt s bt k cc thuc tnh, chng c lu tr trong
mng mc ni.
Mi quan h gia cc phn t DOM c th c i chiu bi danh sch cc thnh phn HTML. Mi
quan h ny l hai chiu. Sa i m hnh DOM s thay i cu trc HTML v dn n thay i cch
biu din mt trang web.
Created by TempAIDS
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';
}
empty.style.border='solid green 2px';
empty.style.width="200px";
}
function addNode(el,text){
var childEl=document.createElement("div");
el.appendChild(childEl);
var txtNode=document.createTextNode(text);
childEl.appendChild(txtNode);
}
Hm window.onload() s c gi khi trang web c np. Ti thi im ny, cu trc cy DOM s
c thit lp.
www.my-ebooks.tk
Created by TempAIDS
Mt cch khc tm kim l da trn loi th HTML, dng phng thc getElementsByTagName().
V d, document.getElementsByTagName("UL") s tr v chui tt c cc th <UL> trong ti liu.
To DOM Node
Trong nhiu trng hp cn to cc nt mi v thm n vo ti liu. JavaScript cung cp mt s
phng thc lm iu . Cc phng thc chun to nt mi l document.createElement() v
document.createTextNode(), phng thc createElement() c th c dng to ra bt k phn t
HTML no, tham s l kiu ca loi th HTML;
var childEl=document.createElement("div");
createTextNode() to mt nt th hin qua mt on text, thng c tm thy trong cc th v
heading, div, paragraph, v list item.
var txtNode=document.createTextNode("some text");
Chun DOM coi cc text node tch ri khi biu din HTML. Chng khng c cc stye p t cho
trc tip v v th chng yu cu t b nh hn.
Mt nt khi c to ra phi c gn vo ti liu trc khi hin th trn trnh duyt, phng thc
appendChild() c dng thc hin iu ny el.appendChild(childEl);
Ba phng thc createElement(), createTextNode(), v appendChild() cho php thc hin hu ht
cc thao tc thm mt nt vo ti liu.
Created by TempAIDS
2.
www.my-ebooks.tk
Created by TempAIDS
5.
6.
7.
Created by TempAIDS
u tin gii quyt vn ny l dng IFrame. Cho n gn y, XMLHttpRequest c a ra nh l
mt gii php mnh m v hiu qu.
XmlDocument v XMLHttpRequest
Cc i tng XmlDocument v XMLHttpRequest khng phi l cc chun DOM m rng ca trnh duyt web
nhng vn c h tr bi rt nhiu trnh duyt. Cc i tng u da trn ActiveX hay cc i tng
JavaScript. Cc trnh duyt khc u c thc thi cc i tng trn c cc chc nng tng ng v cc li
gi hm API.
Mt v d s dng XmlDocument:
function getXMLDocument(){
var xDoc=null;
if(document.implementation&&document.implementation.
createDocument){
xDoc=document.implementation.createDocument("","",null);
}else if (typeof ActiveXObject != "undefined"){
var msXmlAx==null;
try{
msXmlAx=new ActiveXObject("Msxml2.DOMDocument");
}catch (e){
msXmlAx=new ActiveXObject("Msxml.DOMDocument");
}
xDoc=msXmlAx;
}
if (xDoc==null || typeof xDoc.load=="undefined"){
xDoc=null;
}
return xDoc;
}
Hm va thc hin trn s tr v mt i tng XmlDocument vi cc hm API ging nhau trong cc trnh
duyt hin nay.
V d sau c chc nng tng t nhng dng cho i tng XMLHttpRequest.
function getXMLHTTPRequest() {
var xRequest=null;
if (window.XMLHttpRequest) {
xRequest=new XMLHttpRequest();
}else if (typeof ActiveXObject != "undefined"){
xRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
return xRequest;
}
Gi mt yu cu n server
Gi mt yu cu n server t mt i tng XMLHttpRequest rt d dng. Tt c nhng vic ta cn lm l
truyn cho n a ch URL ca server. Ta s lm nh sau:
function sendRequest(url,params,HttpMethod){
www.my-ebooks.tk
Created by TempAIDS
if (!HttpMethod){
HttpMethod="POST";
}
var req=getXMLHTTPRequest();
if (req){
req.open(HttpMethod,url,true);
req.setRequestHeader("Content-Type","application/
x-www-form urlencoded");
req.send(params);
}
}
XMLHttpRequest h tr mt min rt rng cc li gi HTTP, gm cc tham s truy vn cho cc trang web ng.
www.my-ebooks.tk
Created by TempAIDS
Trc tin cn to mt i tng XMLHttpRequest bng JavaScript trc khi s dng i tng ny
gi request v x l cc response. XMLHttpRequest cha l chun ca W3C, v th phi dng
JavaScript theo nhiu cch to mt th hin ca ca XMLHttpRequest. Internet Explorer thc thi
XMLHttpRequest nh mt i tng ActiveX, v cc trnh duyt khc nh Firefox, Safari, v Opera
thc thi n nh mt i tng JavaScript nguyn thy. V s khc nhau ny, on m JavaScript phi
cha cc cu trc logic to mt th hin ca XMLHttpRequest dng k thut ActiveX hay i tng
JavaScript nguyn thy.
Rt may mn, trong trng hp ny khng cn phi vit m mt cch t m xc nh kiu trnh duyt
v lm th no to mt th hin ca i tng XMLHttpRequest. Cng vic ch n gin l kim tra
s h tr i tng ActiveX ca trnh duyt. Nu h tr ActiveX, th to mt i tng
XMLHttpRequest dng ActiveX. Trng hp khc, to i tng ny bng k thut to i tng
JavaScript nguyn thy. on m JavaScript sau d dng to ra cc th hin ca i tng
XMLHttpRequest m khng quan tm ti trnh duyt.
To mt th hin ca i tng XMLHttpRequest:
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
Created by TempAIDS
ti cch to cc th hin ny. iu ny lm cho vic pht trin cc ng dng n gin hn v lm cho
JavaScript khng ph thuc vo trnh duyt c th.
void open(string method, string url, boolean asynch, string username, string password):
Phng thc ny thit lp mt phin gi ti server. ngha ca n ny l khi to mt request.
N c hai tham s yu cu v ba tham s ty chn; ta phi cung cp c t ca phng thc
c triu gi (GET, POST, hay PUT) v a ch URL ca ti nguyn c gi. Cng c th
truyn mt bin ch bo kiu Boolean, xc nh vic truyn l bt ng b - gi tr mc nh l
true, ngha l cc request lun bt ng b theo mc nh. Nu truyn mt gi tr false, qu trnh
x l s phi i cho n khi c phn hi t server. Vic truyn d liu bt ng b l mt li
www.my-ebooks.tk
Created by TempAIDS
void send(content): Phng thc ny thc hin gi request ti server. Nu request c khai
bo bt ng b, kt qu c tr v ngay, cn khng n s i cho ti khi nhn c response
t server. Tham s c th l mt th hin ca mt i tng DOM, mt lung d liu vo (input
stream), hay mt kiu string. Ni dung truyn cho phng thc ny c gi i nh mt phn
trong request.
void setRequestHeader(string header, string value): Phng thc thit lp gi tr cho phn
header cho trong HTTP request. Tham s bao gm mt bin kiu string biu th header c
thit lp v mt string khc biu din gi tr thay th trong header. Ch l n cn phi c
gi trc khi gi n open(). Trong hu ht cc phng thc th cp open() v send() thng
xuyn c gi.
Ngoi nhng phng thc chun ny, i tng XMLHttpRequest cn c cc thuc tnh c lit k
sau y. Anh em ch ta s phi s dng cc thuc tnh m rng ny khi lm vic vi
XMLHttpRequest.
onreadystatechange B x l s kin cho mt s kin pht sinh mi khi c s thay i trng thi.
readyState Trng thi ca request. C 5 gi tr l
0 = uninitialized,1 = loading, 2 = loaded, 3 = interactive, v 4 = complete.
responseText Response tr v t server di dng string.
responseXML Response 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.
status M trng thi HTTP t server (chng hn 200 nu khng c li, 404 cho li Not Found, ).
statusText Thng ip ca m trng thi HTTP (chng hn OK hay Not Found, ).
www.my-ebooks.tk
Created by TempAIDS
Khng ging nh cc cch tip cn kiu request/response thng thng trong cc chun Web client, mt ng
dng Ajax c nhng khc bit, sau y l m t qu trnh tng tc:
1. Mt event client-side gy ra mt s kin - Ajax event. Bt k mt tc ng no cng c th gy ra Ajax event,
t mt s kin onchange n gin cho n mt s tc ng ca ngi dng. V d vi on m sau:
<input type="text" id="email" name="email" onblur =
"validateEmail()";>
2. Mt th hin ca XMLHttpRequest c to ra. Dng phng thc open(), to li gi hm - a ch URL
c thit lp cng vi phng thc HTTP yu cu, thng thng l GET hay POST. Request c to ra qua
vic gi phng thc send(). on m ngun sau th hin iu :
var xmlHttp;
function validateEmail() {
var email = document.getElementById("email");
var url = "validate?email=" + escape(email.value);
www.my-ebooks.tk
Created by TempAIDS
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
xmlHttp.open("GET", url);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
3. Mt request c to v gi n server. C th l mt li gi ti mt servlet, mt CGI script, hay mt cng
ngh pha server no tng t nh ASP.NET, JSP, hay PHP
4. Server x l cc yu cu, chng hn nh truy cp c s d liu hay mt tc v h thng no y.
5. Response c tr v cho trnh duyt. Trng Content-Type c thit lp dng text/xml; XMLHttpRequest
ch c th x l kt qu dng text/html. Trong cc th hin phc tp hn, response kh rc ri v bao gm
JavaScript, cc thao tc trn i tng DOM, hoc cc cng ngh lin quan khc. Ch l cng cn thit lp
header v th trnh duyt s khng lu kt qu mt cch cc b. Ta s lm nh sau:
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
6. Trong v d sau, cu hnh XMLHttpRequest gi hm callback() khi kt qu x l c tr v. Hm ny kim
tra thuc tnh readyState trn i tng XMLHttpRequest v sau xem xt m trng thi tr v t server. Mi
th hon ton bnh thng, hm callback() c th lm nhiu vic trn pha client. Mt phng thc callback
thng c dng sau:
function callback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
//do something interesting here
}
}
}
C mt s khc bit vi m hnh request/response thng thng nhng khng qu l lm i vi cc lp trnh
vin Web. R rng, phi xem xt thm v vic to v thit lp mt i tng XMLHttpRequest v sau (hm)
callback s kim tra cc trng thi. Thng th cc li gi chun ny c ng gi vo mt th vin dng
trong ng dng, hay ni cch khc l dng mt th vin c sn thc thi Ajax cho ng dng Web (c rt nhiu
th vin nh th, ta s xt trong cc phn sau). Ajax l vn tuy cn mi m, nhng c mt lng ng k
cc th vin v ng dng m ngun m c cng b.
Hu ht cc framework v toolkit Ajax trn cc trang Web u dng cc k thut c bn v tru tng ha cc
trnh duyt, v thm vo mt s component giao din ngi dng (UI). Mt s l cc framework thun client;
cn li lm vic trn server. Nhiu framework trong s ny mi c bt u xy dng, nhng chng lin tc c
www.my-ebooks.tk
Created by TempAIDS
cc phin bn v c thn cc th vin mi. Mt s gii php thc thi Ajax l cc th vin Ajax.NET, Atlas,
libXmlRequest, RSLite, sarissa, JavaScript Object Notation (JSON), JSRS, Direct Web Remoting (DWR), v
Ruby on Rails
Bi sau chng ta s phn tch "Cc phng thc GET v POST".
Created by TempAIDS
dng mt s cng ngh nh XML-RPC, nhng s phc tp ca phng php ny lm gim tnh ph
bin ca n. Cch thc thi c bn i vi remote scripting bao gm phi hp mt cripting vi mt
IFRAME v server tr v cc on m JavaScript, cc on m ny s c chy trong trnh duyt.
Microsoft c gii php ring v remote scripting, c gi l Microsoft Remote Scripting (MSRS), cho
php gi cc server script ging nh l chng cc b. Mt Java applet c nhng vo trang web
lm cho s lin lc vi server c d dng, mt trang asp c dng cha cc script pha server,
mt file .html qun l bn pha client.
C th dng cc gii php ca Microsoft vi Netscape v Internet Explorer 4.0 tr nn. Cc li gi hm
ny c th ng b hay bt ng b. Tuy nhin gii php ny yu cu Java, c ngha l cn c s ci
t thm vo, v n ph thuc vo trnh Internet Information Services (IIS), t lm gim s la chn
cho pha server.
V d v Remote Scripting
so snh, chng ta cng xt mt v d v cng ngh tng t AJAX c thc thi nh th no dng
IFRAME. V d sau ch ra vic dng IFRAME cho remote scripting.
Trong v d ny c hai file iframe.html v server.html. Server.html gi lp mt response c tr v t
server.
iframe.html
<html>
<head>
<title>Example of remote scripting in an IFRAME</title>
</head>
<script type="text/javascript">
function handleResponse() {
alert('this function is called from server.html');
}
</script>
<body>
<h1>Remote Scripting with an IFRAME</h1>
<iframe id="beforexhr" name="beforexhr" style="width:0px; height:0px; border: 0px"
src="blank.html"></iframe>
<a href="server.html" target="beforexhr">call the server </a>
</body>
</html>
server.html
<html>
<head>
<title>the server</title>
</head>
<script type="text/javascript">
www.my-ebooks.tk
Created by TempAIDS
window.parent.handleResponse();
</script>
<body>
</body>
</html>
Created by TempAIDS
Created by TempAIDS
if (window.ActiveXObject) {
xmlHttp = new
ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function
startRequest() {
createXMLHttpRequest();
xmlHttp.onreadystatechange =
handleStateChange;
xmlHttp.open("GET",
"simpleResponse.xml", true);
xmlHttp.send(null);
}
function
handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
alert("The server replied
with:"
+ xmlHttp.responseText);
}
}
}
</script>
</head>
<body>
<form action="#">
<input type="button" value="Start Basic Asynchronous Request"
onclick="startRequest();"/>
</form>
</body>
</html>
File response ca server, simpleResponse.xml, cha mt dng text duy nht. Khi nhn vo nt bm trn
trang HTML s tr v mt hp alert vi ni dung ca file simpleResponse.xml. Request ti server c
gi mt cch bt ng b, cho php trnh duyt tip tc p ng ngi dng trong khi ch i response
ca server pha background (cn c gi l AjaxEngine). Nu mt thao tc bt ng b c chn v
nu response ca server cn vi giy tr v, trnh duyt s khng th p ng ngi dng trong thi
gian i. S bt ng b c th ci thin tnh trng ny bng cch trnh hin th khi trnh duyt b t lit
v khng th p ng ngi dng. iu ny cho php ngi dng tip tc lm vic trong khi server
tip tc lm vic vi request trc trong background.
Kh nng lin lc vi server; khng c li ngt; vi lung lm vic ca ngi dng m ra rt nhiu
k thut ci thin cho pha ngi dng. Mt ng dng, chng hn nh chng thc d liu nhp t
www.my-ebooks.tk
Created by TempAIDS
ngi dng. Khi mt ngi dng in vo mt trng d liu trn form nhp, trnh duyt c th nh
k lin tc gi cc form gi tr ti server kim chng m khng cn ngt qung qu trnh in d
liu vo form nhp. Nu nhp d liu khng ng, ngi dng c th ngay lp tc c thng bo,
trc khi form thc s c gi n server x l, iu ny tit kim c thi gian v gim qu
trnh np d liu trn server, ni dung ca form s khng c np li sau mt form trnh khng
thnh cng.
Vn bo mt:
Bt k mt cng ngh no da trn nn tng trnh duyt s khng trn vn nu b qua vn bo mt.
i tng XMLHttpRequest c x l bo mt theo m hnh sandbox ca trnh duyt.
Sc mnh ca phng php bo mt gii hn ny ty thuc vo tng trnh duyt. Internet Explorer hin
th mt cnh bo tnh trng mt nguy c khng an ton c th tn ti v cho php ngi dng s la
chn c tip tc vi request na hay khng. Trnh duyt Firefox s dng request li v hin th
thng ip li trn JavaScript.
Created by TempAIDS
<td>Foo</td>
<td>Bar</td>
</tr>
</tbody>
</table>
C th biu din theo DOM ca bng trn. Li th ca c t DOM l n cung cp mt chun tng
tc vi ti liu. Khng c DOM, khng th thc thi c Ajax. DOM khng ch cho php duyt v
chnh sa ni dung, m cn lm cho trang web tr thnh cc trang ng.
Kt lun cho cc lot bi v: i tng XMLHttpRequest
Chng ta va xem xt cc k thut c bn v l tri tim ca Ajax, i tng XMLHttpRequest.Vi
s kt hp gia JavaScript v mt s thao tc DOM, Ajax cho php mt mc tng tc cha tng c
t trc n nay. Vi XMLHttpRequest ta khng cn i qu trnh ti np trang web v s ng b vi
server na.
Trong phn sau chng ta s cng nhau nghin cu v: Gi cc request v x l response
Sau mi n: K thut lp trnh vi AJAX.
Created by TempAIDS
GET / HTTP/1.1
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
(compatible; MSIE 5.5; Windows NT 5.0)
Host: www.ft.com
Connection: Keep-Alive
Request-Line cha ba mc phn bit, l method, uri, v phin bn HTTP, mi mc c phn tch
bi mt hay nhiu khong trng.
www.my-ebooks.tk
Created by TempAIDS
Mt HTTP request lun cha mt dng trng sau Request-Line v bt k header no. Nu request bao
gm mt message body, phn body i sau mt dng trng. Dng trng - blank line rt quan trng v
server xc nh c phn kt ca request, hoc phn kt ca header. Khng c dng trng, server nhn
cc message s khng bit c cc header khc na c tip tc c truyn khng.
HTTP Response
HTTP Response kh ging vi HTTP Request. Du hiu khc bit duy nht l response bt u vi mt
dng trng thi status so vi Request-Line. Status-Line, cng ging nh Request-Line, cha ba mc
ngn cch bi cc khong trng.
Created by TempAIDS
www.my-ebooks.tk
Created by TempAIDS
www.my-ebooks.tk
Created by TempAIDS
www.my-ebooks.tk