Ajax je metoda využívající různé technologie přidávané do webových prohlížečů v letech 1995 až 2005, jejichž zvláštností je umožnit odesílání požadavků na webový server a následně částečně upravit webovou stránku zobrazenou na klientské pracovní stanici bez nutnosti zobrazovat nová úplná stránka. Tato počítačová architektura umožňuje vytvářet dynamické interaktivní webové aplikace a webové stránky . Ajax znamená asynchronní JavaScript a XML : Asynchronous JavaScript and XML .
Ajax kombinuje JavaScript a DOM , což umožňuje upravit informace prezentované v prohlížeči při respektování jeho struktury, Fetch a XMLHttpRequest API , které se používají pro asynchronní dialog s webovým serverem; a také datový formát ( XML nebo JSON ), aby se zlepšila ovladatelnost a snadné použití bohatých internetových aplikací . XML, citovaný v zkratce, byl historicky upřednostňovaným způsobem strukturování informací přenášených mezi webovým serverem a prohlížečem, dnes má JSON pro toto použití tendenci jej nahrazovat.
Využití Ajaxu funguje na všech populárních webových prohlížečích: Google Chrome , Safari , Mozilla Firefox , Internet Explorer , Microsoft Edge , Opera atd.
Ve webové aplikaci je klasická metoda dialogu mezi prohlížečem a serverem následující: při každé manipulaci provedené uživatelem prohlížeč odešle požadavek obsahující odkaz na webovou stránku , poté webový server provede výpočty a odešle výsledek jako webová stránka do prohlížeče. Poté se zobrazí stránka, kterou jste právě obdrželi. Každá manipulace vede k přenosu a zobrazení nové stránky. Uživatel musí počkat na příchod odpovědi, aby mohl provést další manipulace.
Při použití Ajaxu probíhá dialog mezi prohlížečem a serverem většinou takto: program napsaný v programovacím jazyce JavaScript , vložený do webové stránky, je spuštěn prohlížečem. To odešle požadavky na webový server na pozadí a poté změní obsah stránky aktuálně zobrazované webovým prohlížečem podle výsledku přijatého ze serveru, čímž se zabrání přenosu a zobrazení zcela nové stránky.
Klasická metoda dialogu používá mechanismy specifické pro World Wide Web , které jsou začleněny do všech prohlížečů i webových prohledávačů a nevyžadují programování. Naopak, fungování Ajaxu vyžaduje programování výměn mezi prohlížečem a webovým serverem v JavaScriptu. Vyžaduje také programování úprav, které mají být provedeny na webové stránce po obdržení odpovědí, jinak se dialogy odehrávají bez vědomí uživatele.
V Ajaxu, jak název napovídá, se požadavky vytvářejí asynchronně : webový prohlížeč pokračuje ve spouštění programu javascript, zatímco je požadavek pryč, nečeká na odpověď zaslanou webovým serverem a uživatel může během toho pokračovat v manipulaci čas.
Programovací jazyk JavaScript se poprvé objevil v roce 1996 ve webovém prohlížeči Netscape Navigator .
Jazyk XML a objektový model dokumentu API (DOM) byly standardizovány konsorciem World Wide Web Consortium v roce 1998.
Ajax ve skutečnosti zavádí XMLHttpRequest , původně komponenta ActiveX vytvořená v roce 1998 společností Microsoft pro jejich webovou aplikaci Outlook Web Access , poté přidaná do standardu ECMAScript pro JavaScript a implementovaná ve většině prohlížečů na trhu v letech 2002 až 2005. Fetch API je moderní náhrada za XMLHttpRequest využívající silné stránky ECMAScript 6 k překonání mnoha nedostatků tohoto starého API. Zejména využívá systém Promises, aby se vyhnul anarchickému používání funkcí zpětného volání.
Termín Ajax zavedl Jesse James Garrett (americký počítačový vědec),18. února 2005, v článku na webu Adaptive Path . Od té doby si rychle získal popularitu.
Metoda Ajaxu spočívá ve společném používání různých otevřených standardních technologií dostupných ve většině prohlížečů na trhu.
Klasické webové aplikace umožňují uživatelům provádět výběr (následovat odkaz, vyplnit a ověřit formulář), poté se odešle požadavek na webový server. Server odpoví na požadavek zasláním webové stránky. Webová stránka je odeslána jako odpověď na každou manipulaci a přenos webové stránky mezi serverem a prohlížečem způsobí, že doba latence je o to větší, že je stránka bohatá na obsah a prezentaci (tabulky, barvy, znaky písma). ..).
Ve webových aplikacích Ajaxu se webová stránka odesílá pouze jednou. Odeslaná stránka bude obsahovat program napsaný v jazyce JavaScript. Během manipulací prováděných na stránce uživatelem program v JavaScriptu odesílá požadavky na webový server, server bude reagovat na požadavky zasláním dokumentu ve formátu XML , tento dokument neobsahuje žádné prezentační informace a počet Informace, které obsahuje, se často snižují, což má za následek kratší časy latence než u tradiční webové aplikace.
Použití JavaScriptu umožňuje spouštět požadavky během manipulace, které by je jinak nespustily (kvůli použitým mechanismům). To umožňuje implementovat funkce, které se nacházejí pouze v Rich Internet Applications .
Šablony stylů CSS se také používají na různých stránkách webové aplikace Ajax, aby se snížila doba latence během počátečního odeslání stránky. Informace o prezentaci jsou převzaty z různých webových stránek aplikace a umístěny do jediné šablony stylů používané pro různé stránky aplikace.
K zobrazení dynamického obsahu na webové stránce existují i jiné systémy:
Cílem Ajaxu je:
Webové aplikace, které mají tyto vlastnosti, se nazývají bohaté internetové aplikace (RIA).
Tyto roboti používají ve vyhledávačích , využívat vestavěné mechanismy World Wide Web - ty, které řídí aplikace klasiky - a nemusí spouštět žádné programy v jazyce JavaScript. Proto nebude obsah stránek vytvořených programem JavaScript přidán do indexu vyhledávače. Stejný problém nastává u konkurenčních produktů, jako jsou Adobe Flex a Microsoft Silverlight .
Pro usnadnění používání těchto technologií bylo zavedeno mnoho rámců . Je to obecně sada knihoven JavaScriptu, která umožňuje provádět asynchronní zpracování a nabízet pokročilou ergonomii díky paletě úspěšných grafických objektů.
Kvůli industrializaci bylo mnoho těchto rámců spojeno s rámci pro webový design.
Odhaduje se, že více než pět set počet současných rámců JavaScriptu. Hlavní jsou v článku Ajax Frameworks .
IBM vytvořila iniciativu Open Ajax Initiative , skupinu propagující tuto technologii s partnery jako 24SevenOffice (en) , Adobe Systems , BEA Systems , Borland , the Dojo Foundation, Eclipse Foundation , Google , ILOG , Yahoo! , Laszlo Systems , Mozilla Corporation , Novell , Openwave Systems, SAP , Oracle , Red Hat , Tibco, Zend Technologies and Zimbra .
Prvním výsledkem této iniciativy je Ajax Toolkit Framework (ATF), projekt, jehož cílem je poskytnout nástroje pro vývoj aplikací Ajax ve vývojovém nástroji Eclipse . Tento projekt je mimo jiné založen na počátečním příspěvku IBM a různých open source AJAX frameworků (jako Dojo nebo Rico ).