Ajax Profesionálně. Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett



Podobné dokumenty
Zrychlete své WWW stránky!

programování formulářů Windows

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Nová pravidla marketingu a PR

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Část 1 Moderní JavaScript

RAW s programem Adobe Photoshop CS

1 Webový server, instalace PHP a MySQL 13

Kapitola 1 První kroky v tvorbě miniaplikací 11

produktů. produkty: AutoCAD Mechanical Showcase Autodesk Autodesk Designer SketchBook Autodesk Mudbox Vault Autodesk Ultimate Intel Xeon Intel Core

Silverlight. datové služby. John Papa

1. Webový server, instalace PHP a MySQL 13

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Tvorba internetových aplikací s využitím framework jquery

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

Jediný. AutoCAD. Často kladené dotazy zákazníků.

Adobe Illustrator CS5

IPPF PRŮVODCE PRAXÍ INTERNÍ AUDIT A PODVOD

Olga Rudikova 2. ročník APIN

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Poznámky k verzi Remote support platform 3.1

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

Jak Vám partnerské programy pomohou v rozvoji podnikání. Víte, že můžete získat software v hodnotě tisíců USD za zlomek ceny?

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Česká zemědělská univerzita v Praze

Ing. Tomáš Řemelka. KAAS/JIP. Informace pro vývojáře agendových informačních systémů

Mobilní počítač Dolphin TM Stručný návod k použití

Tvoříme PŘÍSTUPNÉ STRÁNKY. webové. Připraveno s ohledem na novelu Zákona č. 365/2000 Sb., o informačních systémech veřejné správy.

Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče

1. Mohu nainstalovat aplikaci Autodesk Revit, Autodesk Revit Architecture, Autodesk Revit MEP, Autodesk Revit Structure nebo Autodesk Revit LT

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

ArcGIS Online Subscription

Úvodem Seznámení s HTML Rozhraní Canvas... 47

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Pochvalná vyjádření k prvnímu vydání Hacking umění exploitace

Zoner Photo Studio kouzlo digitální fotografie

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

INFORMAČNÍ SYSTÉMY NA WEBU

Zoner PhotoStudio 11 archivace, správa, publikování a základní úpravy digitálních fotografií

Send Driver. Příručka správce

Jak postupovat při řízení kontinuity činností. Risk Analysis Consultans

Formy komunikace s knihovnami

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

Supplier Web Uživatelská příručka. Supplier Web. Copyright Telefónica O2 Czech Republic, a.s. All rights reserved. 1/10

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

aktuality, novinky Ing. Martin Řehořek

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

Windows na co se soustředit

Vstupní požadavky, doporučení a metodické pokyny

Josef Pecinovský PowerPoint 2007

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

- 1 - Smlouva o dílo. uzavřená podle 536 a násl. obchodního zákoníku v účinném znění

Komu je tato kniha určena? Jak je kniha uspořádána? Konvence použité v té to knize. Část i základy Microsoft Windows XP Professional

Ekonomika v prostředí samosprávy

a konverze na úřadech Martin Řehořek

Po ukončení tohoto kurzu budete schopni:

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Spisová služba a zákon 300/2008 Ladislav Kleman, Petra Benediktová

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Ukázka knihy z internetového knihkupectví

Efektivní provoz koncových stanic

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

1. Začínáme s FrontPage

Příručka ke službě Postup instalace služby SMSender na operačních systémech Windows 98, Windows Millenium, Windows 2000, Windows XP

Obsah. Úvod... 9 Použité zdroje... 9 O autorovi... 10

Co je Symantec pcanywhere 12.0? Hlavní výhody Snadné a bezpečné vzdálené připojení Hodnota Důvěra

2. Thunderbird: jak ho získat 19

Veritas Information Governance získejte zpět kontrolu nad vašimi daty

Microsoft Word základní

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

E-distribuce dokumentů. elektronizaci publikování

Granit 1280i. Stručný návod k použití. Industrial Full Range Laser Scanner CZ-QS Rev A 1/14

Uživatelská dokumentace

3. HODINA. Prohlížeče Druhy prohlížečů Přehled funkcí Bc. Tomáš Otruba, Informatika 7. třída 1

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

Studijní průvodce e-learningovým kurzem. STRUKTURÁLNÍ FONDY A PROJEKTY v období

Copyright by Silca S.p.A All Rights Reserved. products quality.

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

egon v České republice

Používání u a Internetu

Windows - bezplatné služby pro školy. Jakub Vlček Specialist Microsoft Corporation

Artlingua Translation API

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

Microsoft Access tvorba databáze jednoduše

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Návod k instalaci S O L U T I O N S

Instalace a konfigurace web serveru. WA1 Martin Klíma

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Windows Vista. základní průvodce. Brian Livingston a Paul Thurrott

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu... 23

Jakub Čermák Microsoft Student Partner

Technická specifikace

Nové eslužby pro Brno

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Transkript:

Ajax Profesionálně Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett uvod.indd 1 15.10.2007 14:05:45

Professional Ajax Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett Published by Wiley Publishing, Inc., 10475 Crosspoint Boulevard, Indianapolis, IN 46256, www.wiley.com. Copyright 2007 by Wiley Publishing, Inc., Indianapolis, Indiana. Translation: ZONER software, s.r.o., 2007. All Rights Reserved. This translation published under license with the original publisher John Wiley & Sons, Inc. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Wiley Publishing, Inc. Všechna práva vyhrazena. Tento překlad je vydán na základě licenční smlouvy s John Wiley & Sons, Inc. Žádná část této publikace nesmí být reprodukována nebo předávána žádnou formou nebo způsobem, elektronicky ani mechanicky, včetně fotokopií, natáčení ani žádnými jinými systémy pro ukládání bez výslovného svolení Wiley Publishing, Inc. Ajax Profesionálně Autoři: Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett Copyright ZONER software, s.r.o. Vydání první v roce 2007. Všechna práva vyhrazena. Zoner Press Katalogové číslo: ZR712 ZONER software, s.r.o. Nové sady 18, 602 00 Brno Překlad: Jiří Koutný Odpovědný redaktor: Miroslav Kučera Šéfredaktor: Ing. Pavel Kristián DTP: Miroslav Kučera Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book. The Wrox Brand trade dress is a trademark of John Wiley & Sons, Inc. in the United States and/or other countries. Used by permission. Ochranné známky: Wiley, logo Wiley, Wrox, logu Wroxu a souvisejicí obchodní známky jsou ochrannými známkami nebo registrovanými ochrannými známkami vydavatelství John Wiley & Sons, Inc, nebo jejich poboček, ve Spojených státech a/ nebo ostatních zemích a nemohou být používány bez písemného oprávnění. Všechny ostatní ochranné známky jsou majetkem jejich vlastníků. Wiley Publishing, Inc. není propojen s jakýmkoliv produktem nebo výrobcem zmíněným v této knize. Obchodní značka Wrox je ochrannou známkou John Wiley & Sons, Inc. ve Spojených státech a/nebo ostatních zemích. Veškeré dotazy týkající se distribuce směřujte na: Zoner Press ZONER software, s.r.o. Nové sady 18, 602 00 Brno tel.: 532 190 883, fax: 543 257 245 e-mail: knihy@zoner.cz http://www.zonerpress.cz ISBN 978-80-86815-77-0 uvod.indd 2 15.10.2007 14:06:03

Mé matce, otci, Gregovi, Yiayii a zbytku mé rodiny a přátel, kteří mě podporovali při cestování z místa na místo. Nicholas C. Zakas Mé životní lásce Starle. Děkuji ti za tvou lásku, trpělivost a povzbuzení. Jeremy McPeak Mým rodičům, Sheile a Williamovi, kteří mi vštípili lásku ke čtení. Děkuji! Joe Fawcett uvod.indd 3 15.10.2007 14:06:03

4 O autorech Nicholas C. Zakas získal titul BS v oboru informační technologie na Merrimack College a titul MBA na Endicott College. Je autorem knihy Professional JavaScript for Web Developers (Wiley 2005) a také několika internetových článků. Nicholas je předním inženýrem ve společnosti Yahoo! a vývoji webu se věnuje více než 6 let. Podílel na vývoji webových řešení pro největší společnosti na světě. Nicholase můžete zkontaktovat prostřednictvím jeho stránek www.nczonline.net. Jeremy McPeak začal s vývojem webu jako se svým koníčkem v roce 1998. Nyní pracuje v IT oddělení ve školství. Jeremy má zkušenosti s vývojem webových řešení pomocí JavaScriptu, PHP a C#. Napsal několik internetových článků na téma XSLT, WebForms a C#. Je spoluautorem knihy Beginning JavaScript, 3rd Edition (Wiley 2007). Můžete jej zkontaktovat prostřednictvím jeho stránek www.wdonline.com. Joe Fawcett začal s programováním v 70. letech a po studiích začal pracovat v IT. Vystřídal spoustu zaměstnání, aby se v roce 1994 opět vrátil k vývoji software. V roce 2003 mu byl udělen titul Microsoft Most Valuable Professional v oblasti XML. V současné době se zabývá systémovou integrací a pracuje jako vývojář pro FTC Kaplan v Londýně, což je přední mezinárodní poskytovatel účetního a obchodního školení. Poděkování Vydání knihy, jako je tato, vyžaduje práci mnoha lidí, a proto bychom jim zde chtěli poděkovat za jejich příspěvky. Ze všeho nejdříve patří dík všem lidem ve vydavatelství Wiley za jejich podporu: Jimovi Minatelimu za opětovné nastartování prací na druhém vydání této knihy. Kevinu Kentovi za připomínky a korektury na poslední chvíli (a za zábavu po celou dobu naší práce). Poděkování také patří našemu technickému editorovi, který je Alexej Gorkov. Na závěr patří velké poděkování těm, kteří nám poskytli zpětnou vazbu ještě před samotným vydáním knihy. Patří sem Peter Frueh, Adam Moore, Jenny Han, Matt Sweeney, Tyson Guskiken, Steve Carlson, a hlavně Hedger Wang, který na žádost vedení navrhl přidat do knihy jednu kapitoly. uvod.indd 4 15.10.2007 14:06:03

Obsah Úvod 15 Komu je tato kniha určena 15 O čem tato kniha je 16 Struktura knihy 16 Co potřebujete k používání této knihy 18 Konvence 18 Sdělte nám svůj názor 18 Zdrojové kódy 19 Kapitola 1 Co je Ajax? 21 Zrození Ajaxu 21 Evoluce webu 22 JavaScript 22 Rámce 23 Technika neviditelných rámců 23 Dynamické HTML a DOM 23 Plovoucí rámce 24 XMLHttp 24 Skutečný Ajax 25 Principy Ajaxu 26 Technologie v pozadí Ajaxu 27 Kdo používá Ajax? 28 Google Suggest 28 Gmail 29 Google Maps 30 A9 31 Yahoo! News 31 Blog Liip 32 Zmatky a spory 33 Ajax a Web 2.0 34 Shrnutí 34 5 uvod.indd 5 15.10.2007 14:06:03

6 Kapitola 2 Základy Ajaxu 37 Základy HTTP 37 HTTP požadavek 37 HTTP odpověď 40 Techniky komunikace pro Ajax 41 Technika neviditelných rámců 41 Požadavek XMLHttp (XHR) 59 Ajax a obrázky 72 Dynamické načítání skriptu 82 Řízení cache 86 Shrnutí 87 Kapitola 3 Ajaxové vzory 89 Vzory pro řízení komunikace 89 Předpovídání přenosu (predictive fetch) 90 Příklad přednačtení stránky 90 Průběžné odesílání (submission throttling) 98 Příklad průběžné ověřování dat ve formuláři 100 Příklad postupná validace pole formuláře 107 Periodické obnovení (periodic refresh) 110 Příklad oznamování nových komentářů 111 Vícestupňové stahování (multi-stage download) 116 Příklad dodatečné zobrazení odkazů 117 Vzory pro výskyt problémů 120 Vzor pro zrušení nevyřízených požadavků 120 Vzor pro zopakování požadavku 122 Shrnutí 124 Kapitola 4 Knihovny pro Ajax 125 Knihovna Yahoo! Connection Manager 125 Instalace 125 Základní požadavky 126 Objekt zpětného volání 126 uvod.indd 6 15.10.2007 14:06:03

Sledování a správa požadavků 130 Interakce formuláře 131 Upload souborů 131 Příklad s GET 132 Příklad s POST 134 Dodatečné vlastnosti 135 Omezení 135 Knihovna Prototype 136 Objekt Ajax.Request 136 Objekt pro nastavení 136 Příklad s GET 140 Příklad s POST 141 Objekt Ajax.Updater 141 Objekt Ajax.Responders 144 Výhody a nevýhody 145 Knihovna jquery 146 Jednoduchý výraz jquery 146 Vykonání požadavku GET 147 Příklad s GET 148 Metoda $.post() 149 Příklad s POST 149 Metoda load() 151 Metoda $.ajax() 152 Metody ajaxstart() a ajaxstop() 153 Omezení 154 Shrnutí 154 Kapitola 5 Správa požadavků 155 Prioritní fronty 155 Objekt RequestManager 160 Objekty pro popis požadavků 160 Řazení požadavků do front 161 Posílání požadavků 163 Zrušení požadavků 168 7 uvod.indd 7 15.10.2007 14:06:03

8 Problém se staršími položkami 169 Ajaxové vzory pro ovládání 171 Použití objektu RequestManager 174 Shrnutí 177 Kapitola 6 XML, XPath a XSLT 179 Podpora XML v prohlížečích 179 XML DOM v IE 179 XML v ostatních prohlížečích 190 XML napříč webovými prohlížeči 193 Jednoduchý příklad XML 194 Podpora XPath v prohlížečích 201 Představení XPath 201 XPath v IE 203 Práce se jmennými prostory 204 XPath v ostatních prohlížečích 207 Práce s rozkladačem jmenného prostoru 208 XPath napříč prohlížeči 210 Podpora XSL transformací v prohlížečích 211 Úvod do XSLT 211 XSLT v Internet Exploreru 214 XSLT v ostatních prohlížečích 219 XSLT napříč prohlížeči 220 Úprava příkladu pro nejprodávanější položky 221 Shrnutí 224 Kapitola 7 RSS a Atom 225 RSS 225 RSS 0.91 226 RSS 1.0 227 RSS 2.0 228 Atom 229 XParser 230 Jmenný prostor xparser 230 uvod.indd 8 15.10.2007 14:06:03

Získávání dat 230 Abstraktní třídy 231 Vytvoření proužku se zprávami 244 Komponenta na straně serveru 244 Komponenta na straně klienta 245 Stylování zpráv 255 Použití proužku se zprávami 257 Webové hledání s RSS 258 Komponenta na straně serveru 259 Komponenta na straně klienta 260 Přizpůsobení vzhledu 266 Použití webového vyhledávání na stránce 269 Shrnutí 270 Kapitola 8 JSON 271 Co je JSON? 271 Literály pole 271 Literály objektu 272 Smíšené literály 273 Syntaxe JSON 274 JSON kódování/dekódování 275 JSON versus XML 276 Nástroje JSON na straně serveru 277 JSON-PHP 278 Další nástroje 280 Vytvoření textového pole s napovídáním 280 Přehled funkcionalit 281 HTML kód 281 Databázová tabulka 284 Architektura 284 Třídy 285 Třída AutoSuggest 286 Poskytovatel návrhů 303 Komponenta na straně serveru 305 9 uvod.indd 9 15.10.2007 14:06:03

10 Komponenta na straně klienta 306 Shrnutí 308 Kapitola 9 COMET 309 HTTP streaming 310 Zpoždění požadavků 310 Příklad modifikace souboru 312 Použití rámců 314 Přístupy specifické pro prohlížeč 319 Události DOM posílané serverem 328 Správa spojení 334 Podpora na straně serveru 334 Shrnutí 335 Kapitola 10 Práce s API pro mapy 337 Vzestup mashups 338 Geokódování 338 Stránky pro geokódování 339 Služby pro geokódování 339 API Google Maps 340 Jak API pracuje? 340 Začínáme 340 Základy Google Maps 341 Ovládání 343 Posouvání mapy 344 Informační okna (bubliny) 345 Události 351 Překrytí mapy 352 Další informace 361 API Yahoo! Maps 362 Začínáme 362 Základy Yahoo! Maps 363 Ovládací prvky 364 Posun mapy 366 uvod.indd 10 15.10.2007 14:06:03

Chytrá okna 366 Události 367 Překrytí mapy 369 Vyhledávání adres 375 Další informace 375 Další API pro mapy 376 Shrnutí 376 Kapitola 11 Nástroje pro ladění Ajaxu 377 Problém 377 FireBug 378 Instalace a nastavení 378 Rozhraní 379 Protokolování objektu XHR 380 Ladění Ajaxu pomocí FireBugu 382 Omezení FireBugu 382 Microsoft Fiddler 382 Instalace a nastavení 383 Rozhraní 384 Body přerušení HTTP 387 Ladění Ajaxu pomocí Fiddleru 388 Shrnutí 389 Kapitola 12 Widgety pro webové stránky 391 Vytvoření widgetu s počasím 391 SDK Weather.com 391 Komponenta na straně serveru 392 Komponenta na straně klienta 402 Získávání dat ze serveru 402 Přizpůsobení widgetu 403 Widget s počasím jako aplikace 408 Vložení widgetu s počasím do stránky 411 Widget pro sledování akcií 412 Získávání finančních informací z Yahoo! 412 11 uvod.indd 11 15.10.2007 14:06:03

12 Ceny akcií 413 Komponenta na straně klienta: třída AjaxStockWatcher 418 Stylování widgetu 426 Používání widgetu s cenami akcií 428 Widget pro vyhledávání 430 Komponenta na straně serveru 431 Komponenta na straně klienta 440 Stylování widgetu pro vyhledávání 447 Přidání widgetu ke stránce 448 Shrnutí 450 Kapitola 13 Pracovní rámce pro Ajax 451 JPSpan 451 Použití JPSpan 452 Příklad použití JPSpan 457 JPSpan shrnutí 460 DWR 461 Používání DWR 461 Příklad použití DWR 464 Více informací o souboru dwr.xml 469 Shrnutí DWR 473 Ajax.NET Professional 473 Použití Ajax.NET Professional 473 Konverze typů 476 Přístup k relaci 477 Příklad použití Ajax.NET Professional 477 Shrnutí Ajax.NET Professional 483 Shrnutí 483 Kapitola 14 ASP.NET AJAX Extensions (Atlas) 485 Požadavky a nastavení 485 Klientské komponenty 486 Přístup ke klientským nástrojům v ASP.NET 486 Přístup ke klientským nástrojům bez ASP.NET 488 uvod.indd 12 15.10.2007 14:06:04

Používání tříd 488 Psaní kódu s ASP.NET AJAX Library 489 Používání ovládacích prvků 495 Vytváření HTTP požadavků 499 Ovládací prvek UpdatePanel 504 Přidání UpdatePanel do stránky 504 Přidání obsahu do UpdatePanel 505 Spouštění aktualizace 506 Dokončení 507 Přepracovaný příklad pro vyhledávání 508 Uživatelské rozhraní 509 Začínáme 509 Deklarace formuláře 510 Vyhledání 513 Mazání výsledků 518 Zpracování chyb 518 Nastavení ovladačů událostí 518 Shrnutí 521 Kapitola 15 Případová studie: FooReader.NET 523 Komponenty na straně klienta 524 Uživatelské rozhraní 524 Stylování rozhraní 527 Řízení UI 534 Komponenty na straně serveru 549 Možné vzory 549 Implementace 550 Nastavení a testování 562 Shrnutí 563 Kapitola 16 Případová studie: AjaxMail 565 Požadavky 565 Architektura 566 Použité zdroje 566 13 uvod.indd 13 15.10.2007 14:06:04

14 Databázové tabulky 567 Konfigurační soubor 568 Třída AjaxMailbox 570 Vykonávání akcí 592 Uživatelské rozhraní 597 Pohled na adresář 601 Pohled na zprávu 604 Pohled na vytvoření nové zprávy 605 Layout 607 Spojení všeho dohromady 608 Pomocné funkce 610 E-mailová schránka 611 Funkce zpětného volání 632 Ovladače událostí 633 Poslední krok 634 Shrnutí 634 Příloha A Licence pro knihovny a pracovní rámce 635 Ajax.NET Professional 635 DWR 636 GNU General Public License 639 Preamble 640 Terms and Conditions for Copying, Distribution and Modification 640 NO WARRANTY 644 JPSpan 645 jquery 646 JSON-PHP 646 Prototype 646 YUI Library 647 Rejstřík 649 uvod.indd 14 15.10.2007 14:06:04

Úvod S nedávnými pokroky v oblasti JavaScriptu jsou vývojáři schopni dosáhnout nevídaných uživatelských prožitků při práci s webovými aplikacemi. Webu od dob jeho vzniku dominovala architektura typu "klikni-a-čekej". Ovšem díky existenci Ajaxu mohou vývojáři webu poskytnout funkcionalitu, která byla dříve dostupná pouze v klasických desktopových aplikacích. Ajax je obecný termín a vztahuje se k použití asynchronních požadavků HTTP, které byly vytvořeny JavaScriptem za účelem získávání informací od serveru bez opětovného načítání stránky. Tyto požadavky mohou být vykonány mnoha různými způsoby a různými typy datových přenosů. Spojení tohoto způsobu získávání vzdálených dat s interaktivitou objektového modelu dokumentu (DOM, Document Object Model) vedlo ke vzniku nové generace webových aplikací, které překračují všechny tradiční možnosti webu. Velké společnosti jako Google, Yahoo! či Microsoft se tak dnes zaměřují na tvorbu webových aplikací, které se chovají a vypadají podobně jako klasické desktopové aplikace. Tato kniha se zabývá různými aspekty Ajaxu nejenom popisem různých možností pro vytvoření požadavku HTTP na server, ale také popisem různých formátů přenos dat zpět ke klientovi. Pomocí této knihy ovládnete různé techniky Ajaxu a vzory komunikace klient-server, které se v současnosti používají na webových stránkách a webových aplikacích. Komu je tato kniha určena Tato kniha je určena dvěma skupinám čtenářů: Vývojářům webových aplikací, kteří se snaží zvýšit jejich použitelnost. Pokročilým vývojářům v JavaScriptu, kteří chtějí více porozumět tomuto jazyku. Rovněž i znalost následujících technologií je velmi důležitým ukazatelem toho, že tato kniha je určena právě vám: XML. XSLT. Webové služby. PHP. C#. HTML. CSS. Hned na začátku vám musíme říci, že tato kniha není určena na začátečníkům, kteří nemají alespoň základní znalosti výše zmíněných technologií. A dále abyste dokonale porozuměli obsahu této knihy, je velmi důležité, abyste dobře ovládali JavaScript. Pokud vám tyto znalosti chybí, udě- uvod.indd 15 15.10.2007 14:06:04

16 láte mnohem lépe, když se prvně podíváte na nějaké knihy, které vás podrobně uvedou do problematiky programování v JavaScriptu. O čem tato kniha je Kniha Ajax Profesionálně poskytuje všechny informace, které jsou nezbytné pro webové vývojáře, kteří chtějí programovat webové aplikace pomocí Ajaxu. Tato kniha tak popisuje různé ajaxové techniky, vzory a praktické případy použití. Kniha začíná zkoumáním kořenů Ajaxu a popisem evoluce webu a nových technologií, které vedly k vývoji Ajaxu. Jsou zde také obsaženy podrobné informace o tom, jak Ajax souvisí s rámci, JavaScriptem, cookies, XML a požadavky XMLHttp. Po tomto úvodu se téma knihy přesouvá k implementaci specifických technik Ajaxu. Různé možnosti pro vytváření požadavků na server skryté rámce, dynamické plovoucí rámce, XHR jsou vzájemně porovnávány a stavěny proti sobě. Je také vysvětleno, jak může být jedna metoda zkombinována s metodou jinou. Pro větší srozumitelnost textu jsou v této knize zahrnuty i stručné informace o požadavcích a odpovědích HTTP. V tomto okamžiku jsou probrány základní informace o různých typech požadavků, takže téma knihy se přesouvá k poskytnutí pokročilejších příkladů, které demonstrují použití Ajaxu na webových stránkách nebo webových aplikacích. Jsou detailně popsány výhody a nevýhody různých formátů pro přenos dat (kam například patří čistý text, HTML, XML a JSON). Je také obsažena diskuse o webových službách a o tom, jak mohou být využity pro předvedení schopností Ajaxu. Dále jsou již zmiňována poněkud složitější témata. Kapitola popisuje pracovní rámec pro vyřizování požadavků a ukazuje, jak v ajaxové aplikaci spravovat všechny typy požadavků. Jsou zde zmíněny nejenom techniky pro ladění kódu Ajaxu, ale také oblíbené debuggery FireBug a Fiddler. Poslední část knihy se pak zaobírá tvorbou plnohodnotných webových aplikací pomocí Ajaxu. První aplikace FooReader.NET je čtečka RSS, která je založena na Ajaxu. Druhá aplikace AjaxMail je e-mailový systém postavený na Ajaxu. Obě tyto aplikace demonstrují praktické využití mnoha technik popisovaných v této knize. Struktura knihy Text knihy začíná popisem vzniku Ajaxu, aby se následně přesunul k popisu současných implementací této technologie. Dále jsou probrány různé možnosti pro zajištění komunikace mezi klientem a serverem, což je téma zbývající části knihy. Knihu doporučujeme číst od začátku, protože každá další kapitola předpokládá znalost informací uvedených v předchozích kapitolách. Stručný obsah kapitol: 1. Co je Ajax? Vysvětluje počátky Ajaxu, související technologie a původ termínu Ajax. Popisuje také vliv vývoje webu na vývoj Ajaxu a kdo pokud ovšem vůbec někdo si může připisovat nárok na vlastnictví tohoto termínu a souvisejících technik. uvod.indd 16 15.10.2007 14:06:04

2. Základy Ajaxu. Uvádí různé postupy pro zajištění ajaxové komunikace (včetně skrytých rámců a XHR). Jsou zde podrobně uvedeny i výhody a nevýhody každého přístupu. Samozřejmě nechybí doporučení, kdy je vhodné dané přístupy použít. 3. Ajaxové vzory. Zaměřuje se na návrhové vzory, které můžete použít pro Ajax. Existuje totiž spousta možností, jak začlenit Ajax do webových stránek a webových aplikací. A zde popisované návrhové vzory vám s tímto úkolem mohou velmi pomoci, protože obsahují ty nejlepší postupy pro začlenění Ajaxu. 4. Knihovny pro Ajax. Zabývá se třemi oblíbenými ajaxovými knihovnami: Yahoo! Connection Manager, Prototype a jquery. V této kapitole jsou porovnány odlišné přístupy těchto knihoven, přičemž dříve uvedené příklady jsou přepsány s jejich využitím. 5. Správa požadavků. Věnuje se správě požadavků XHR v ajaxových aplikacích s ohledem na různá omezení prohlížečů. V souvislosti s ajaxovými vzory popisovanými v kapitole 3 je zde rozebrána metodologie tvorby prioritního systému. 6. XML, XPath a XSLT. Popisuje XML, XPath a XSLT jako doplňkové technologie pro Ajax. Soustředí se na použití XML jako ideálního formátu pro přenos dat a použití XPath/XSLT pro přístup k informacím a k jejich zobrazení. 7. RSS a Atom. Popisuje použití Ajaxu společně s datovými formáty RSS a Atom pro vytvoření widgetu, jehož úkolem je získávání nových zpráv. V této kapitole jsou využívány techniky, které byly popisovány v předchozích kapitolách knihy. 8. JSON. Představuje JSON (JavaScript Object Notation) jako užitečnou alternativu k obvyklým formátům určeným pro přenos dat v ajaxové komunikaci. V této kapitole jsou dále zmíněny různé výhody a nevýhody použití XML a čistého textu. 9. Comet. Popisuje vznik architektury nazvané jako Comet. Je zde probráno několik různých technik pro implementaci této architektury v závislosti na možnostech prohlížečů. 10. Práce s API pro mapy. Detailně popisuje dvě API pro mapy v Ajaxu API Google Maps a API Yahoo! Maps. Každé z těchto API je podrobně prozkoumáno z hlediska možností a omezení pro použití v oblasti geokódování. 11. Nástroje pro ladění Ajaxu. Tato kapitola se zabývá různými metodami pro ladění požadavků posílaných serveru. Jsou zde představeny možnosti pro ladění HTTP požadavků prostřednictvím rozšíření FireBug pro Firefox a nástroje Fiddler pro Internet Explorer. 12. Widgety pro webové stránky. Představuje některé techniky z předchozích kapitol, které jsou zaměřeny na tvorbu ajaxových widgetů, a které mohou být vloženy do vašich stránek. 13. Pracovní rámce pro Ajax. Zabývá se třemi pracovní rámci pro Ajax JPSPan pro PHP, DWR pro Javu/JSP a Ajax.NET pro ASP.NET. Každý z těchto pracovních rámců se snaží o automatizaci některého vývojového procesu v Ajaxu. 14. ASP.NET AJAX Extensions (Atlas). Popisuje pracovní rámec ASP.NET AJAX Extensions (dříve známý jako Atlas) a jeho přínos pro zjednodušení tvorby ajaxových aplikací. Tento pracovní rámec předpokládá, že je nainstalován.net 2.0 pro kód na straně serveru. 17 uvod.indd 17 15.10.2007 14:06:04

18 15. Případová studie: FooReader.NET. Popisuje vytvoření agregátoru zpráv RSS. Tato aplikace ilustruje nejenom využití proxy na straně serveru, ale také použití XML v JavaScriptu. 16. Případová studie: AjaxMail. Tato kapitola vás provede procesem vývoje kompletní webové aplikace, která byla pojmenována jako AjaxMail. Jedná se o e-mailový systém založený na Ajaxu. V této poslední šestnácté kapitole je použito velké množství technik, které byly popisovány na předchozích stránkách této knihy. Co potřebujete k používání této knihy Pro spuštění příkladů v knize budete potřebovat následující: Windows 2000, Windows Server 2003, Windows XP nebo Mac OS X. Internet Explorer 5.5 nebo novější (Windows), Firefox 1.5 nebo novější (všechny platformy), Opera 9.0 nebo novější (všechny platformy) nebo Safari 2.0 či novější (Max OS X). Kompletní zdrojové kódy všech příkladů jsou ke stažení na stránce www.zonerpress.cz. Konvence Abychom vám pomohli odnést si z textu knihy co nejvíce a usnadnili vám sledování, co se právě děje, používáme v této knize několik následujících konvencí. Tyto šedé rámečky souvisí s okolním textem a obsahují důležité informace, které byste neměli zapomenout. V těchto rámečcích jsou rovněž i případné tipy, rady a odbočky od tématu. Konvence pro styly použité v textu jsou následující: Klávesové zkratky sázíme takto: Ctrl+A. Názvy souborů, URL a zdrojové kódy v textu sázíme tímto způsobem: persistence.properties. Pro zobrazení výpisů kódů používáme dvě možnosti: Nový a důležitý kód je zvýrazněn tučným řezem. Tučný řez není použit pro kód, který má v aktuálním kontextu nižší důležitost nebo již byl v knize uveden dříve. Sdělte nám svůj názor Jako čtenáři této knihy se stáváte těmi nejdůležitějšími kritiky a komentátory. Vážíme si vašeho názoru a chtěli bychom vědět, co děláme správně, co bychom mohli dělat lépe, ve kterých oblas- uvod.indd 18 15.10.2007 14:06:04

tech bychom měli publikovat a také vaše další podnětné myšlenky, o které jste ochotni se s námi podělit. Jako odborný redaktor Zoner Press vítám vaše názory. Můžete mi psát poslat e-mail nebo dopis a sdělit mi, co se vám v této knize lí bilo nebo nelíbilo, stejně tak, co bychom měli udělat, aby naše další knihy byly lepší. Pokud mi napíšete, nezapomeňte prosím připojit název knihy, ISBN, jméno autora, vaše jméno, telefon, fax nebo e-mail. Pozorně zhodnotím vaše názory a poskytnu je autorovi a redaktorům, kteří pracovali na této knize. Prosím, vězte, že nemohu pomoci s technickými problémy, které se týkají obsahu knihy, a že díky velkému množství e-mailů, které dostávám, nemohu zaručit odpověď na každou zprávu. E-mail: miroslav.kucera@zoner.cz nebo knihy@zoner.cz. Adresa: Zoner Press, ZONER software, s.r.o., Miroslav Kučera, Nové sady 18, 602 00 Brno. Zdrojové kódy Zdrojové soubory k této knize pro jednotlivé programovací jazyky je možné stáhnout z níže uvedených adres. Zdrojové kódy pro ASP.NET (3.6 MB). http://www.zonerpress.cz/download/ajax-profesionalne-asp-net.zip Zdrojové kódy pro PHP (3.3 MB). 19 http://www.zonerpress.cz/download/ajax-profesionalne-php.zip Zdrojové kódy pro JSP (3.3 MB). http://www.zonerpress.cz/download/ajax-profesionalne-jsp.zip uvod.indd 19 15.10.2007 14:06:04

20 uvod.indd 20 15.10.2007 14:06:04