Tartalomjegyzék Köszönetnyilvánítás Bevezetés Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék p2p.wrox.com
1.
Mi az Ajax? Az Ajax születése A Web evolúciója A JavaScript Keretek A rejtettkeret-módszer A Dynamic HTML és a DOM Az iFrame-mechanizmus XMLHttp Az igazi Ajax Az Ajax alapelvei Az Ajax mögött álló technológiák Ki használja az Ajaxot? Google Suggest Gmail Google Maps A9 Yahoo! News Bitflux Blog Zűrzavar és ellentmondások Az Ajax és a Web 2.0 Összefoglalás
vii xvii xvii xviii xix xxi xxi xxii xxii xxiii
1 2 2 3 3 4 4 5 5 6 7 9 10 10 11 12 13 14 15 16 17 17
Tartalomjegyzék
2.
Az Ajax alapjai HTTP: bevezető HTTP-kérések HTTP-válaszok Az Ajax kommunikációs módszerei A rejtettkeret-módszer XMLHttp-kérések (XHR) Az Ajax és a képek Dinamikus szkriptbetöltés Gyorsítótár-vezérlés Összefoglalás
3.
4.
19 20 22 24 24 44 60 71 76 76
Ajax-minták
79
A kommunikáció vezérlésének mintái Jósló lekérdezés Lapbetöltés: példa Felküldés-korlátozás Növekményes űrlapellenőrzés: példa Növekményes mezőellenőrzés: példa Periodikus frissítés Értesítés új megjegyzésről: példa Többfázisú letöltés Hivatkozások további tudnivalókra: példa Hibakezelési minták Folyamatban levő kérések megszakítása Újrapróbálkozás Összefoglalás
79 80 81 90 91 100 103 104 110 110 113 113 116 117
Az Ajax-osztálykönyvtárak A Yahoo! Connection Manager Telepítés Alapszintű kérések A visszahívott objektum Kérések monitorozása és menedzselése Űrlap-interakció Fájlok feltöltése GET: Példa POST: Példa További szolgáltatások Megkötések Prototype Az Ajax.Request-objektum Az Options-objektum
x
19
119 119 120 120 121 126 126 127 128 129 131 131 132 132 132
Tartalomjegyzék
GET: Példa POST: Példa Az Ajax.Updater objektum Az Ajax.Responders-objektum Előnyök és hátrányok A jQuery Egyszerű jQuery-kifejezések GET-kérések végrehajtása GET: Példa A $.post() metódus POST: Példa A load() metódus A $.ajax() metódus Az ajaxStart() és ajaxStop() metódusok Megkötések Összefoglalás
5.
Kéréskezelés Várakozási sorok A RequestManager-objektum Request Description Objects Kérések sorba állítása Kérések küldése Kérések visszavonása Kor alapú előléptetés Az Ajax-minták kezelése A RequestManager használata Összefoglalás
6.
XML, XPath és XSLT A böngészők XML-támogatása Az XML DOM az Internet Explorerben XML-adatok betöltése IE-ben Az XML más böngészőkben Böngészőfüggetlen XML Egy egyszerű XML-példa A böngészők XPath-támogatása Ismerkedés az XPath-szal Az XPath az Internet Explorerben A névterek használata Az XPath más böngészőkben Névtérfeloldók használata Böngészőfüggetlen XPath
136 137 138 140 142 143 143 144 145 147 147 149 150 151 152 152
155 155 160 161 163 164 171 172 174 178 181
183 183 183 185 196 200 201 209 209 211 212 215 218 219
xi
Tartalomjegyzék
A böngészők XSLT-támogatása Bevezető az XSLT-be Az XLST az Internet Explorerben XSLT használata más böngészőkben Böngészőfüggetlen XSLT Ismét a Legjobbak szolgáltatásról Összefoglalás
7.
Tartalomszórás az RSS és az Atom segítségével Az RSS Az RSS 0.91 Az RSS 1.0 Az RSS 2.0 Az Atom Az XParser Az xparser névtér Az adatok kiolvasása Az absztrakt osztályok Az Atom elemzése Hírszalag létrehozása A szerveroldali komponens A kliensoldali összetevő A hírek megformázása A hírszalag minialkalmazás használata Keresés a weben az RSS segítségével A szerveroldali komponens A kliensoldali komponens A Web Search minimodul testreszabása A Web Search minimodul használata Összefoglalás
8.
A JSON Mi a JSON? Tömbliterálok Objektumliterálok A literálok keverése A JSON szintaxisa JSON-kódolás/dekódolás A JSON és az XML Szerveroldali JSON-eszközök A JSON-PHP További eszközök
xii
221 221 225 230 232 232 236
237 237 238 239 240 241 242 242 243 243 249 257 258 259 270 272 273 274 275 282 285 286
287 287 287 288 289 290 291 292 294 294 296
Tartalomjegyzék
Autosuggest (automatikus ajánlás) szövegmező létrehozása A működés áttekintése A HTML-rész Az adatbázistábla Az architektúra Az osztályok Az AutoSuggest vezérlőelem Az ajánlásszolgáltató A szerveroldali összetevő A kliensoldali összetevő Összefoglalás
9.
A Comet HTTP-folyamkezelés Kéréskésleltetés Példa fájl módosítására Az iFrame-elemek használata Böngésző-specifikus megközelítések Szerver által küldött DOM-események Kapcsolatkezelés A szerveroldali támogatás Összefoglalás
10. Térképek és mashup-alkalmazások A mashup-alkalmazások megjelenése Földrajzi kódolás Webhelyek földrajzi kódolása Földrajzi kódolást szolgáltató webhelyek A Google Maps API Hogyan működik? Az első lépések Google Maps – az alapismeretek Vezérlőelemek A térkép mozgatása Információs ablakok Események Térképrétegek További tudnivalók A Yahoo! Maps API Az első lépések Yahoo! Maps – az alapismeretek Vezérlőelemek A térkép mozgatása
297 298 298 301 301 302 303 322 324 326 328
329 329 330 332 334 339 350 356 357 358
359 360 360 361 362 362 363 363 364 366 367 368 374 376 386 387 387 388 389 391 xiii
Tartalomjegyzék
Intelligens ablakok Események Térképrétegek Címkeresés További tudnivalók Egyéb térképkezelő felületek Összefoglalás
11. Az Ajax hibakereső eszközei A probléma FireBug Telepítés és beállítás A felhasználói felület XHR-naplózás Ajax-hibakeresés a FireBug segítségével A FireBug korlátai A Microsoft Fiddler Telepítés és beállítás A felhasználói felület HTTP-töréspontok Ajax-hibakeresés a Fiddler segítségével Összefoglalás
12. Minimodulok a webhelyen Időjárás-minimodul létrehozása A Weather.com SDK A szerveroldali összetevő A kliensoldali összetevő Az adatok elkérése a kiszolgálótól Az időjárás-minimodul testreszabása Az időjárás-minimodul beállítása alkalmazásként Az időjárás-minimodul hozzáadása a weblaphoz Részvények figyelése A Yahoo! Finance adatainak megszerzése A részvényárfolyam-proxy A klienskomponens: az AjaxStockWatcher-osztály A részvényárfolyam-kivonatok testreszabása A Stock Watcher-minimodul használata Webhelytartalom-kereső minimodul létrehozása A szerveroldali összetevő A kliensoldali komponens A kereső-minimodul testreszabása A Site Search minimodul hozzáadása weblaphoz Összefoglalás xiv
392 393 395 401 402 402 403
405 405 406 407 407 408 410 410 411 412 413 416 417 417
419 419 419 420 431 432 432 437 440 442 442 443 448 458 460 462 463 472 479 481 482
Tartalomjegyzék
13. Az Ajax-keretrendszerek A JPSpan A JPSpan használata A JPSpan: példa A JPSpan: összefoglalás A DWR A DWR használata A DWR: példa További tudnivalók a dwr.xml-ről A DWR: összefoglalás Az Ajax.NET Professional Az Ajax.NET Professional használata Típuskonverzió Hozzáférés a munkamenethez Ajax.NET Professional: példa Az Ajax.NET Professional: összefoglalás Összefoglalás
14. Az ASP.NET AJAX Extensions (Atlas) Követelmények és telepítés Az AJAX kliensoldali osztálykönyvtár A kliensoldali eszközök elérése az ASP.NET-tel A kliensoldali eszközök elérése az ASP.NET nélkül Osztályok használata Kód írása az ASP.NET AJAX osztálykönyvtár segítségével Vezérlőelemek használata HTTP-kérések küldése Az UpdatePanel vezérlőelem Az UpdatePanel vezérlőelem hozzáadása weblaphoz Tartalom bevitele az UpdatePanel vezérlőelembe Frissítés indítása Az utolsó lépések SiteSearch: újra A felhasználói felület Az első lépések Az űrlap deklarálása A keresés végrehajtása Az eredmények törlése Hibakezelés Az események regisztrálása Összefoglalás
483 483 484 490 493 494 494 497 503 507 507 508 510 511 512 518 518
521 522 522 523 524 524 525 532 538 543 543 544 545 546 548 548 549 549 552 557 557 558 560
xv
Tartalomjegyzék
15. Esettanulmány: a FooReader.NET A kliensoldali komponensek A felhasználói felület A felhasználói felület stílusának kialakítása A felhasználói felület működtetése A szerveroldali alkalmazás A lehetséges paradigmák Megvalósítás Telepítés és tesztelés Összefoglalás
16. Esettanulmány: az AjaxMail Követelmények Az architektúra A felhasznált erőforrások Az adatbázistáblák A konfigurációs fájl Az AjaxMailbox-osztály Műveletek végrehajtása A felhasználói felület Mappa-nézet Olvasó-nézet Levélíró-nézet Elrendezés A részek összekötése Kisegítő függvények A postaláda Visszahívó függvények Eseménykezelők Az utolsó lépés Összefoglalás
561 562 562 565 572 590 590 590 603 604
605 605 606 606 607 609 610 636 643 646 649 651 653 654 655 657 679 680 681 682
„A” függelék
683
Tárgymutató
693
A GNU általános nyilvános licenc (GPL)
703
A szerzőkről
711
xvi