Tài liệu Xây dựng các trang web dựa trên Ajax bằng PHP: Xây dng các trang web da trên Ajax bng PHP
Mc : Trung bình
Ken Ramirez, Sáng lp viên, Axsys Technology Group
07 08 2009
Tìm hiu quá trình vit các ng dng JavaScript + XML không ng b (Ajax) b ng cách s
dng mã JavaScript™ nguyên sinh và PHP. Bài vit này gii thiu mt s
khung công tác và
các giao din chng trình ng dng (API) khác nhau, gim bt c s
lng mã bn cn
vit hoàn tt mt ng dng web da trên Ajax.
PHP ã có mt t nhiu nm nay. Thng nó c s
dng nh mt ngôn ng kch bn lnh phía máy ch
phát trin các ng dng da trên web khá nhanh chóng và t c các kt qu t
t. Thc t mt s
d
án da trên web ph bin nht nh PHP-Nuke, osCommerce, và Joomla tt c u c phát trin b ng
PHP và ngày nay tip tc ln mnh.
Ajax cng ã có mt c mt thi gian, nhng mãi gn ây mi có nhiu trang web c phát trin b ng
cách s
dng các thc hà...
11 trang |
Chia sẻ: Khủng Long | Lượt xem: 898 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Xây dựng các trang web dựa trên Ajax bằng PHP, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Xây dng các trang web da trên Ajax bng PHP
Mc : Trung bình
Ken Ramirez, Sáng lp viên, Axsys Technology Group
07 08 2009
Tìm hiu quá trình vit các ng dng JavaScript + XML không ng b (Ajax) b ng cách s
dng mã JavaScript™ nguyên sinh và PHP. Bài vit này gii thiu mt s
khung công tác và
các giao din chng trình ng dng (API) khác nhau, gim bt c s
lng mã bn cn
vit hoàn tt mt ng dng web da trên Ajax.
PHP ã có mt t nhiu nm nay. Thng nó c s
dng nh mt ngôn ng kch bn lnh phía máy ch
phát trin các ng dng da trên web khá nhanh chóng và t c các kt qu t
t. Thc t mt s
d
án da trên web ph bin nht nh PHP-Nuke, osCommerce, và Joomla tt c u c phát trin b ng
PHP và ngày nay tip tc ln mnh.
Ajax cng ã có mt c mt thi gian, nhng mãi gn ây mi có nhiu trang web c phát trin b ng
cách s
dng các thc hành Ajax. Ajax cung cp công ngh cho phép mt trang web hay ng dng da
trên web giao tip vi máy ch mà không cn phi làm mi li toàn b trang. V c bn, các c tính
không ng b cung cp phng tin trình duyt ca máy khách g
i yêu cu hoc g i các phng thc
mà c thc hin bên phía máy ch. Kt qu t máy ch sau ó có th c x
lý bên phía khách b ng
cách s
dng mã JavaScript, và bt k! kt qu u ra nào cng có th c trn vào khung nhìn HTML
mt trc (front-end) hin ti mà không cn làm mi li trang. Khi s
dng Ajax, bn không tht s s
dng mt ngôn ng lp trình mi. Trên thc t, tt c nhng gì bn làm là tn dng các công ngh hin có
và a vào s
dng chúng t
t hn.
Khi kt hp vi nhau, PHP và Ajax cung cp mt nn tng mnh to ra các trang web hoc các ng
dng da trên web vi các tính nng vng mnh. Bài này xem xét mt s
cách s
dng PHP và Ajax và
kho sát cách bn có th tn dng chúng trong các ng dng da trên web ca bn nh th nào. Trc khi
bn tin hành, mt s hiu bit vng vàng v HTML và mã JavaScript là rt quan tr ng. Bn cng cn
quen bit PHP nh là mt ngôn ng kch bn lnh, mc dù hu ht ngôn ng kch bn lnh nào khác cng
có th thay th c nó.
Giao tip vi máy ch
Chìa khóa cho vic giao tip khách/ch trong Ajax là s
dng
i tng XMLHttpRequest ca
JavaScript. "
i tng này c hu ht các trình duyt h# tr, gm Windows® Internet Explorer 5.0 và
các bn cao hn, Safari 1.2, Mozilla Firefox, Opera 8 và các bn cao hn, và Netscape 7. " hiu c s
khác nhau gia các giao tip khách/ch truyn th
ng và giao tip khách/ch da trên Ajax, tôi s$ s
dng
mt ví d. Theo truyn th
ng, trình duyt khách g
i ni dung n máy ch x
lý hoc lu tr trong
mt c s% d liu, bn thng s
dng mt hành ng POST g
i ni dung t các trng u vào thu
thp c % phía khách ti máy ch. Máy ch x
lý ni dung này b ng cách s
dng PHP (hoc bt k!
ngôn ng kch bn lnh nào mà bn la ch n), c hoc lu d liu b ng cách s
dng mt c s% d liu,
và tr li các kt qu c nhúng bên trong mã HTML. Sau ó HTML s$ c trình duyt x
lý và mt
trang mi c biu hin ra cho ngi s
dng cu
i cùng xem. Hình 1 mô t rõ kch bn này.
Hình 1. Quy trình truyn thng trình d liu và nhn kt qu
Page 1 of 11Xây dng các trang web da trên Ajax b ng PHP
Khi s
dng Ajax, cng cùng quy trình này nhng cn ít thi gian hn % mt trc. Ý t%ng là làm cho
ngi s
dng cm thy nh là h không bao gi phi i mt trang cp nht. Thc t là b ng cách s
dng Ajax, bn có th phát trin toàn b ng dng web b ng cách s
dng ch& mt trang HTML n l',
mc dù tôi ht sc khuyên bn ng làm nh vy. Theo cách truyn th
ng, nu bn mu
n g
i mt biu
m(u cho máy ch, bn thit lp mt hành ng (action) ca biu m(u ó và ch& nh rõ kiu hành ng là
POST. Vi Ajax, bn không thc s trình mt biu m(u trc tip cho máy ch. Thay vào ó, bn g i
mt hàm JavaScript, nó kim tra li và thu thp các giá tr t biu m(u ca bn và sau ó g
i d liu n
mt hàm % phía máy ch b ng cách s
dng XMLHttpRequest. Kt qu c g
i tr li ti mt im cho
trình khách, sau ó trình khách x
lý kt qu và cp nht các phn ca trang cn c cp nht. Trong
trng hp này, trang ó không c làm mi li toàn b. Do ó, cn ít thi gian hn x
lý mã HTML.
Kt qu là hiu nng hot ng t
t hn. Hình 2 minh ho quy trình này hi khác i nh th nào khi s
dng Ajax to ra mt cp nht cho trang web ch không phi là làm mi toàn b trang.
Hình 2. Quy trình Ajax trình và nhn kt qu
Page 2 of 11Xây dng các trang web da trên Ajax b ng PHP
Hãy quan sát các bc cn thit thc hin giao tip vi máy ch, mt thc t t mã JavaScript ca bn.
Trc tiên, bn nh ngh)a biu m(u s$ trông nh th nào, nh trong Lit kê 1.
Lit kê 1. Biu m
u HTML
Biu m(u này sinh ra kt qu u ra nh Hình 3.
Hình 3. u ra c
a biu m
u HTML
Biu m(u này không làm iu gì tht s có ích, nhng hy v ng nó giúp bn b*t u thy nhng ni mà bn
có th tích hp Ajax vào mã ca mình.
Hãy chú ý r ng s kin onClick c xác nh trên nút nhn. S kin này c thit lp g i mt hàm
JavaScript có tên là ajaxFunction. "ây là ni m i iu tr% nên thú v trong th gii Ajax. Trong phm
vi phng thc này, bn thc hin mt vài bc, chúng c gii thích trong phn này:
1. To mt cá th ca
i tng XMLHttpRequest cn có.
2. M% mt kt n
i n dch v phía máy ch mà bn mu
n g i.
3. Báo cho Ajax bit s$ g i phng thc nào khi mã phía máy ch thi hành xong và tr li kt qu.
4. G
i yêu cu.
!
"# "
$%&'
()
*
'
'
'
Page 3 of 11Xây dng các trang web da trên Ajax b ng PHP
5. Phn hi không ng b.
To mt cá th
Bn cn to ra hàm ajaxFunction và cung cp mt bin lu gi
i tng XMLHttpRequest khi nó
c to ra. Nh vi bt k! phng thc JavaScript nào, bn nh ngh)a phng thc ó nh trong Lit kê
2.
Lit kê 2. nh ngha c
a ajaxFunction
Hu ht các trình duyt hin i v
n ã h# tr
i tng XMLHttpRequest. Tuy nhiên, các trình duyt c
hn nh Internet Explorer 6 òi h+i bn phi to ra mt
i tng ActiveX thc hin vic g i không
ng b n máy ch. "iu này gây ra mt vn vì bn phi xác nh mã ca bn ang chy trong trình
duyt nào và to ra úng
i tng làm c vic. Mã JavaScript cung cp mt gii pháp b ng s h#
tr ca nó
i vi kh
i chc nng th
/b*t (try/catch). Bn ch& cn th
to ra các
i tng theo th t
u tiên và kh
i try/catch x
lý phn còn li, tng t nh mã a ra trong Lit kê 3.
Lit kê 3. To i tng XMLHttpRequest thích hp
Nh bn ã thy, tt c các trình duyt hin i c vit h# tr vic to nguyên thy
i tng
XMLHttpRequest. Có mt tranh lun v vic Microsoft® có tht s h# tr
i tng XMLHttpRequest
nguyên thy không hay ch& n gin là bao gói mt trin khai thc hin ActiveX b ng cách s
dng mt
mt ngoài.
M mt kt ni n máy ch
Bên trong chính hàm JavaScript y, sau khi to ra
i tng XMLHttpRequest, bn tip tc b ng vic m%
mt kt n
i n kch bn lnh phía máy ch b ng cách s
dng phng thc open ca
i tng
XMLHttpRequest. Phng thc này tip nhn hai tham s
b*t buc và ba tham s
tùy ch n, nh mô t
trong Bng 1.
TB ng 1. Các tham s c
a phng thc open
"
"
$%+
,
&
-
-
-
.
"
"
$%+
,
&
+
''
/*
01-23-45/(
-
,
67,
89
$%&
.
"
":$%
+
''*
0;-
+
,
"
62"
$<-67,))%&
.
"
":$%
+
+
,
"
62"
$
"
-67,))%&
.
"
":$%
+
&
.
.
.
.
Page 4 of 11Xây dng các trang web da trên Ajax b ng PHP
"
i vi ví d này, ch& cn thc hin mt thao tác GET yêu cu mt kch bn lnh trên máy ch tr v ngày
gi (time) hin ti. Bn cng báo cho phng thc open bit r ng bn mu
n thc hin không ng b thao
tác này, nh trong Lit kê 4.
Lit kê 4. Gi phng thc open
Báo cho Ajax bit g
i phng th
c nào khi mã phía máy ch thi hành xong
Khi bn g i máy ch b ng cách s
dng Ajax, kt qu phn hi s$ g i li thông qua hàm callback. Bn
có th to ra và t tên mt hàm hoc to ra mt hàm không tên, nh tôi ã thc hin. Trong trng hp
nào thì bn cng cn báo cho
i tng XMLHttpRequest bit hàm callback nào c s
dng b ng
cách thit t thuc tính onReadyStateChange ca nó, nh trong Lit kê 5.
Lit kê 5. Thit t thuc tính onReadyStateChange
Nh bn ã thy, phng thc này kim tra readyState sau khi nó c g i, tìm kim mt giá tr kh d)
là 4. Có nm trng thái kh d), chúng c mô t trong Bng 2.
B ng 2. Các giá tr kh d i vi readyState
Tham s Mô t
method Ch& rõ phng thc HTTP mà bn mu
n s
dng. Các giá tr kh d) gm GET, POST, PUT hoc HEAD.
url Ch& rõ ng d(n tuyt
i hoc tng
i n d liu XML hay dch v web XML phía máy ch mà
bn mu
n g i ra. " ngn chn các tn công qua kch bn lnh xuyên trang (cross-site scripting attacks),
các yêu cu Ajax ch& c thc hin cho URL vi cùng giao thc, máy ch, và cng nh trang cha yêu
cu Ajax. Mc dù mt s
trình duyt có th cho phép các URL tu! ý, bn không nên da vào h# tr này
t tt c các trình duyt. Nu bn cn giao tip xuyên trang (cross-site communication), nó phi c x
lý % phía máy ch b ng cách s
dng cURL hoc mt s
phng tin khác.
async True nu bn mu
n g
i yêu cu n máy ch theo kiu không ng b. Cng cn phi gán tham s
này
là true nu bn ã bt (set) thuc tính onreadystatechange, iu mà tôi s$ tho lun ngay sau ây.
Gán tr tham s
này là false s$ ngn chn hu ht các trình duyt tip nhn thêm bt c u vào nào t
ngi s
dng. Nu ng dng ca bn là linh hot tip tc nhn d liu u vào trong khi hot
ng mt sau (back-end operation) hoàn tt, t
t nht là thc hin hành ng ca bn không ng b.
user Ch& rõ mt tên ngi s
dng c s
dng vào mc ích xác thc ngi s
dng trc khi thc thi
kch bn lnh. Vic này ch& cn thit khi kch bn yêu cu xác thc ngi s
dng.
password Ch& rõ mt mt kh,u c s
dng vào mc ích xác thc ngi s
dng trc khi thc thi kch bn
lnh. Vic này ch& cn thit khi kch bn yêu cu xác thc ngi s
dng.
"
"
$%+
-
-
-
,
-$=0)/
-:/
%&
.
"
"
$%+
-
-
-
,
-
":"
$%+
$,
-(
>%
+
''=
:
:?-
"
- -
-,
-)
&
,
&
.
.
.
Page 5 of 11Xây dng các trang web da trên Ajax b ng PHP
Mã này v c bn nói r ng, “Nu trng thái nói r ng thao tác này ã hoàn tt, thì tip tc.” Khi trng thái là
ã hoàn tt, bc tip theo là cp nht phn ca trang cn phi cp nht b ng phn hi t máy ch. "iu
này c thc hin b ng cách ly giá tr ã c gán cho thuc tính responseText, giá tr này c in
b%i phn hi t máy ch. Cu
i cùng, bn ngng
i tng XMLHttpRequest li b ng cách gán cho nó giá
tr null.
Gi yêu cu
Ch& cn mt bc na mà ajaxFunction phi thc hin, và ó là g
i yêu cu cho máy ch. "iu này
c thc hin vi phng thc send ca
i tng XMLHttpRequest. Nu yêu cu là không ng b,
phng thc tr v ngay lp tc sau khi g
i yêu cu. Nu nó là ng b, phng thc này ch& tr v sau
khi nhn c phn hi, iu ó có ngh)a là chc nng Ajax b khóa li n khi phng thc ó tr v.
Phng thc này có mt tham s
mà bn có th gán giá tr null hoc mt s
các giá tr khác. Thí d bn có
th truyn cho nó mt
i tng DOMDocument, mt InputStream, hoc mt String. Giá tr c s
dng nh là phn thân ca yêu cu HTTP nu phng thc yêu cu là POST. Hàm ajaxFunction hoàn
ch&nh s$ gi
ng nh Lit kê 6.
Lit kê 6. Hàm ajaxFunction hoàn chnh
Phn hi không ng b
Do s phát trin Ajax có bn cht là không ng b, bn phi c,n thn vi s tng tranh và hãy quan tâm
n chu#i x
lý ca bn. "iu này c bit quan tr ng khi bn thc hin nhiu li g i Ajax và nhn c
các phn hi theo mt trình t không bit trc. Quy t*c ngón tay cái là hãy ch i iu bt ng.
Có th có nhng ln mà phn hi t máy ch cn quay tr% li máy khách nh là mt tài liu XML. Trong
nhng trng hp nh th, bn có th s
dng thuc tính responseXML ca
i tng XMLHttpRequest
Giá tr Mô t
0 Không c kh%i to
1 "ang np
2 Np xong
3 Tng tác
4 Hoàn tt
"
"
$%+
,
&
+
''
/*
01-23-45/(
,
67,
89
$%&
."
":$%+
''*
0;-
+
,
"
62"
$<-67,))%&
."
":$%+
+
,
"
62"
$
"
-67,))%&
."
":$%+
$@
A6B%&
&
.
.
.
,
-$=0)/
-:/
%&
,
-
":"
$%+
$,
-(
>%+
''=
:
:?-
"
- -
-,
-)
&
,
&
.
.
,
-$%&
.
Page 6 of 11Xây dng các trang web da trên Ajax b ng PHP
ly ra d liu. Lit kê 7 th hin kch bn lnh PHP s$ nh th nào trong trng hp này.
Lit kê 7. Mã PHP tr v mt tài liu XML
Nh bn ã bit, mã to ra mt tài liu XML, biu hin b ng dòng '<?xml version="1.0"
encoding="ISO-8859-1"?>'
trc khi g
i phn còn li ca phn hi. Mã phía khách phi c vit
sao cho nó trc tiên s$ rút ra tài liu XML t thuc tính responseXML phân tích d liu b ng cách s
dng DOM (Mô hình "
i tng Tài liu), và sau ó hin th d liu trên trang b ng cách s
a i các
trng thích hp ã có s-n trên trang ó. Lit kê 8 th hin các thao tác này.
Lit kê 8. Mã JavaScript x lý mt tài liu XML
M rng Ajax bng các khung công tác JavaScript
Bn h.n ã nhn thy r ng ch.ng có gì c bit cn thit t mã PHP phía máy ch thc hin các chc
nng Ajax % mt trc. Trên thc t, bn có th thc s vit kch bn lnh phía máy ch b ng bt k! ngôn
ng nào mà máy ch web ca bn có th g i thc hin và tr li kt qu ca nó cho trình khách. Tuy
nhiên, có mt s
sáng kin m% rng Ajax làm các vic khác. Thí d, có mt s
th vin cung cp nhiu
iu khin (controls) mt trc hp d(n trc quan hn nhiu bin c m ca Web 2.0 thành hin thc.
Hu ht các th vin này c vit b ng mã JavaScript và cung cp các c tính và API làm gim bt s
lng mã JavaScript bn cn vit % mt trc. Cng ph bin trong hu ht các th vin này là vic s
dng Ký pháp "
i tng JavaScript (JavaScript Object Notation - JSON); ó là mt nh dng trao i d
liu g n nh/ c s
dng trên toàn b Internet hin nay. Sau ây là mt s
th vin mà bn có th thy
b ích:
Prototype
Script.aculo.us
Dojo
jQuery
Prototype
Prototype cung cp mã JavaScript da theo lp (class-driven) phát trin các ng dng web ng. Ngoài
ra, khung công tác Prototype cung cp mt
i tng Ajax toàn cc, làm cho d0 vit các hàm Ajax ca bn
hn, và thm chí là d0 x
lý hn. S
dng khung công tác này phát trin Ajax ca bn còn mang li li
C:
D
8"(
$DE=0)F?9?G&
":?C
H-4"
*(2I33JKIHC?-
?"?&
:
$D9E
":E$D
%%+
":#-DF?#?G-'#&
":-DF??G-'&
":-DF??G-'&
":"
-DF?"
?G-
'"
&
.
":?'"?&
C
"
!:$%+
$,
-(
>%+
L",
-67&
"
-
0
M*$#%-
,)7
L"-
0
M)N$#%F4G-":
NF4G-O&
"
-
0
M*$%-
,)7
L"-
0
M)N$%F4G-":
NF4G-O&
"
-
0
M*$%-
,)7
L"-
0
M)N$%F4G-":
NF4G-O&
"
-
0
M*$"
%-
,)7
L"-
0
M)N$"
%F4G-":
NF4G-O&
.
.
Page 7 of 11Xây dng các trang web da trên Ajax b ng PHP
ích b sung là bn không còn phi x
lý các vn xuyên nhiu trình duyt (cross-browser) na. Vi mt
ln g i, bn có th cung cp URL ích, phng thc HTTP (POST hoc GET), phng thc g i li phn
hi (response callback method), và nhiu th khác.
Script.aculo.us
Mt khung công tác JavaScript ph bin khác có mt s
iu khin (controls) giao din ngi s
dng /p
m*t là Script.aculo.us. Khung công tác này cung cp mt iu khin thc hin các chc nng Ajax cho
bn. Thm chí có mt iu khin trng vn bn t ng hoàn tt gi
ng nh kiu Google mà bn có th s
dng ly vn bn t ngi s
dng ca bn. Các chc nng Ajax cho phép bn d0 dàng xác nh c
mc tiêu truy vn bên phía máy ch. Phn hi kt qu c s
dng hin th mt tp hp các xâu ký t
mà máy ch tr v cho ngi s
dng cu
i cùng nh là các la ch n kh d).
Dojo
B công c Dojo là mt khung công tác Javascript và Ajax mã ngun m%, ni ting vì t
c ca nó và
kích thc ch& 25KB. Trong v ài Ajax, Dojo cung cp các API ca chính nó g
i và nhn các cuc g i
không ng b n và t mt máy ch. Không có gì thay i % phía máy ch. Mã PHP ca bn tip tc
phn hi gi
ng nh nó luôn luôn làm
i vi bt k! li g i Ajax nào.
jQuery
jQuery thc hin mt công vic tuyt vi là n gin hoá c ch tìm kim các phn t
trong các trang
ca bn và b sung các chc nng mi, c tính mi, và nh dng ngay trong khi ang chy thi hành (on
the fly at runtime). Nó cng gm c mt s
c tính Ajax c bit cho phép bn cung cp các tng tác
Ajax trên các trang Web ca bn.
M rng PHP h tr Ajax
Bây gi bn ã hiu nhng iu c bn, tôi s$ cho bn thy hin nay PHP ang c m% rng nh th nào
h# tr Ajax. T ph
i cnh PHP, vic m% rng Ajax không ch& là vic vit li mã truy cp
XMLHttpRequest
(XHR). Bây gi bn ã hiu nhng iu c bn, tôi s$ cho bn thy hin nay PHP ang
c m% rng nh th nào h# tr Ajax. T ph
i cnh PHP, vic m% rng Ajax không ch& là vic vit li
mã truy cp. Các dch v mt trc cn c tính n bao gm thi hành dch v mt sau, truy cp mt c
s% d liu, và thc hin các dch v mng mt sau t mt trc. Mt s
khung công tác mà tôi ã thy trên
th trng cho phép các nhà phát trin vit mã ca h trong ngôn ng mt sau (back-end language), và
khung công tác này to ra mã JavaScript mt trc. V c bn, bn báo cho nó bit các phng thc mt
sau nào phi c g i, và khung công tác này vit ra cu trúc ngoài mt trc (front-end façades) b ng mã
JavaScript; mã này có th cp phát mt
i tng XHR, g
i yêu cu, nhn phn hi, và sau ó chuyn nó
ti mt hàm tùy theo la ch n ca bn hoc thm chí gán u ra trc tip ti mt phn t
HTML mà bn
la ch n. Ý t%ng là gim bt s
lng mã JavaScript mà bn phi vit. Vi suy ngh) y, tt c các
phn t
mà bn mu
n cung cp các hàm cho chúng có th c ghi è và buc n
i vi các phng thc
mt sau; các phng thc mt sau này phn ng li khi xy ra mt s kin mt trc ã nh. Sau ây là
các khung công tác áng c nghiên cu:
PHP AJAX
PHP-Ext
ExtPHP
PHP AJAX
PHP AJAX cho phép bn m% rng mt lp PHP b ng lp ca riêng bn. Sau ó bn ch& cn g i ra mt
phng thc kh%i to khi tp tin PHP ca bn c g i ra, và nó to ra mã XHR mt trc cn thit cho
bn. Sau ó, s kin mt trc phi g i mt hàm JavaScript vi tên gi
ng nh tên lp PHP ca bn. Mã
này trông gi
ng nh Lit kê 9.
Lit kê 9. M rng PHP AJAX bng lp PHP c
a riêng bn
"E
:+
"
$%+
.
"
$%+
.
Page 8 of 11Xây dng các trang web da trên Ajax b ng PHP
Các phng thc ghi è c g i ra thc hin các nhim v khác nhau trong vòng i ca Ajax. Thí
d, nu mt hành ng c thi hành % mt trc, phng thc main() ca lp % mt sau c g i ra
x
lý hành ng này. Bt c d liu u vào nào thu thp % mt trc u c chuyn ti phng thc
input().
PHP-Ext
PHP-Ext cung cp mt th vin c vit h# tr cho c PHP 4 và PHP 5, cung cp nhiu iu khin
giao din ngi s
dng % mt trc. C s% n m di ca các iu khin này thc s c Ext JS cung
cp, nhng cái làm cho khung công tác này là duy nht là % ch# bn không phi tp trung vào vic cung
cp JavaScript thao tác các iu khin mt trc. Thay vào ó, toàn b tng tác vi các iu khin
c thc hin b ng cách s
dng các dch v mt trc c vit b ng PHP. Mã PHP c g i ra khi cn
thit, tùy thuc vào các s kin mà bn ã ch& nh rõ r ng bn mu
n x
lý s kin y. Khi xut hin mt
s kin ã ng ký, phng thc PHP phù hp c g i ra trong mã ca bn. Vi cách này, bn có th
in vào ni dung ca các ô li ch nht bài trí giao din và các iu khin khác gn nh là trc tip t
mã PHP ca bn.
ExtPHP
Theo nhà phát trin ng u d án, bn có th dùng PHP-Ext vit ra mã JavaScript xâm nhp và
không xâm nhp (intrusive and non-intrusive), úng nh bn có th s$ làm vi Ext JS. Li im là % ch#
thit k này cho phép b biên tp PHP ca bn phát hin c các tên phng thc cha có, có l#i chính t
hoc s
dng sai ch không phi là buc bn g1 l#i mã JavaScript trong trình duyt Web. Ý t%ng ng
sau ExtPHP là to ra các lp PHP mà có th c g i t các kch bn lnh PHP. Khi bn kh%i to mt
i tng, mã JavaScript tng ng c lu li trong mt b m trong. Nu bn g i ra mt phng thc
ca
i tng, mã này s$ c thêm vào b m trong (internal buffer). Khi bn ã s-n sàng hoàn tt mã
JavaScript, bn ch& cn g i ra mt phng thc n l', jsrender(). Bn cng có th b sung trc tip
mã JavaScript vào u ra ca bn b ng cách g i ra các hàm ExtPHP cho phép bn thêm vào u ra.
Tóm tt
Bài vit này cung cp cho bn mt kin thc nhp môn v vit mã mt trc da trên Ajax và sau ó ch&
cho bn bit cách kt hp mã mt trc vi kch bn lnh PHP mt sau. Nó cng d(n bn n mt s
khung công tác s-n có mi nht cho phép bn to ra các ng dng web da trên Ajax nhanh hn nhiu so
vi bn t vit ra toàn b mã. B ng cách kt hp mt hoc hai khung công tác y vi Ajax và PHP, bn có
th vit ra các ng dng web trc quan hp d(n và phong phú. Thc t bn có th t h+i làm sao mà bn
li tng vit c các ng dng web ca bn không có các công ngh mi y.
Tài nguyên
Hc tp
JavaScript.com là mt ngun tài nguyên ln tìm hiu v mã JavaScript và các công ngh s*p ti
liên quan n nó.
Trang web PHP Ajax Frameworks cung cp mt danh mc các khung công tác phát trin các
ng dng PHP/Ajax mà bn không phi t mình mã hoá toàn b các JavaScript Ajax. Nhiu trong
s
các khung công tác thc hin các công vic nn bên di cho bn, cho phép bn tp trung vào
các mu ch
t chính ca ng dng ca bn, ch không phi là c s% h tng có c các giao tip
Ajax khách/ch.
"Ajax & PHP without using the XmlHttpRequest Object" (PHPit, 11.2005) có mt s
ý t%ng thc
s khôn ngoan, nó mô t cách mà bn có th vit mã PHP cho phép bn s
dng các ý nim Ajax
mà không phi ph thuc vào
i tng XMLHttpRequest. Tuy nhiên, nó b hn ch ch& dùng
"
$%+
.
.
Page 9 of 11Xây dng các trang web da trên Ajax b ng PHP
phng thc GET, nên nu bn cn g
i n máy ch hn 500 byte, bn có th phi tìm công c khác
làm vic ó.
" tìm m i th v Ajax, Ajaxian nht nh là ni cn phi n. "ây là mt trang web phi xem.
M i th dính dáng n Ajax u % trên trang Web này. Dù nó phi làm b ng PHP hay mt ngôn
ng khác thì bn v(n s$ tìm thy nó % ây.
M% rng các k2 nng web ca bn b ng các bài vit và hng d(n chuyên môn hoá v các công
ngh web trong Web development zone ca developerWorks.
"ng hành vi Technical events and webcasts ca developerWorks.
Ly s n phm và công ngh
Nu JavaScript ã c np b ng mt API hoc Khung công tác ã c nâng cp, nó s$ là
Prototype. Khi JavaScript API kt thúc, Prototype s$ n
i tip. Khung công tác này ã tr% thành tiêu
chu,n c các nhà phát trin khung công tác JavaScript khác s
dng nh là khung công tác c s%,
trên ó xây dng các khung công tác mi. Trên thc t, script.aculo.us c xây dng trên khung
công tác này.
Th vin script.aculo.us cung cp mt s
iu khin UI /p nht mà tôi tng thy. Tôi ã giành
th*ng li mt cách d0 dàng t nhiu khách hàng hnh phúc nh th vin nh+ tin dng này.
JSON là mt nh dng trao i d liu hng nh/ mà con ngi có th c c và máy tính d0
dàng phân tích cú pháp c. Không ch& dành cho mã JavaScript mà thôi, JSON ã c thêm vào
ngôn ng PHP % phiên bn 5.2.0.
Ext JS là mt khung công tác Javascript vi các thành phn Ajax và UI. Nó làm vic cùng vi
Prototype, Yahoo UI, và jQuery. Có s-n c giy phép mã ngun m% và giy phép thng mi cho
d án này.
Dojo cung cp Ajax, các s kin, óng gói, vic truy vn da trên CSS, và nhiu th na trong mt
gói nh+ g n.
jQuery là mt th vin JavaScript n gin hoá cách bn i ngang qua các tài liu HTML, x
lý s
kin, và thc hin hot hình. Nó cng có mt s
tính nng Ajax cho phép bn d0 dàng thêm Ajax
vào HTML mt trc ca bn g i các kch bn lnh phía máy ch % mt sau.
PHP AJAX là mt khung công tác to ra toàn b mã JavaScript cn thit ngay trong khi chy thi
hành sau khi tp tin PHP c g i ra. Bn vit mt lp PHP mà m% rng mt lp PHP Ajax và vit
è các phng thc x
lý các li g i mt trc ti mt sau.
PHP-Ext PHP-Ext là mt th vin widget mã ngun m% da trên Ext JS, cung cp cho các nhà phát
trin kh nng vit các kch bn lnh PHP thay cho mã JavaScript.
ExtPHP ExtPHP là mt th vin mà bn có th s
dng vit JavaScript xâm nhp và không xâm
nhp, úng nh cách bn có th làm vi Ext JS.
Th o lun
Xem qua developerWorks blogs và tham gia vào cng ng developerWorks.
ôi nét v tác gi
Ken Ramirez là ngi sáng lp Tp oàn Công ngh Axsys Technology Group, tp oàn này
cung cp dch v ch cha Web (hosting) và phát trin trang web tu! ch&nh thông qua Axsys
Page 10 of 11Xây dng các trang web da trên Ajax b ng PHP
Java và tt c các nhãn hiu và biu tng da trên Java là các thng hiu ca Sun Microsystems, Inc. ti
Hoa K!, các qu
c gia khác, hoc c hai. Microsoft, Windows, Windows NT, và biu tng Windows là các
thng hiu ca Tp oàn Microsoft ti Hoa K!, các qu
c gia khác, hoc c hai. Các tên công ty, sn ph,m,
hoc dch v khác có th là tên nhãn hiu hàng hóa hoc dch v ca các hãng khác. Các tên công ty, sn
ph,m, hoc dch v khác có th là các tên nhãn hiu hàng hóa hoc dch v ca các hãng khác. Tên ca công
ty, sn ph,m hay dch v có th là nhãn hiu ng ký hoc nhãn hiu dch v ca ngi khác.
Hosting. Ken cng làm vic vi các ch doanh nghip nh+, nhng ngi ang tìm kim các
gii pháp trang web không *t tin qua trang web ca
ông. Công ty ông chuyên v PHP, MySql, Linux, XHTML/CSS, Adobe Flash, các gii pháp
thng mi in t
, và các gii pháp qun lý ni dung.
Page 11 of 11Xây dng các trang web da trên Ajax b ng PHP
Các file đính kèm theo tài liệu này:
- tailieu.pdf