„I když se vám nejkrásněji zdá, že jste strojvůdci své lokomotivy, výhybku vám vždycky přehodí někdo jiný, kdo toho umí míň.“ Ludvík Vaculík (Morčata)
maskot zápisníku

Chybějící Kousek Zápisník Antonína Daňka

Open Source, programování, internet,

kurzor

Upozornění na nový obsah pomocí RSS.

? Co je to RSS?

Upozornění na nový obsah pomocí e-mailu.


ajax.jpg

AJAX je hloupost a ztráta času

AJAX nám umožňuje vyměňovat data na webu na pozadí. To samé nám kdysi umožňoval frameset, který je dneska hromadně zamítnutý. Opravdu se AJAX tak liší od frameset ?

Jakej je účel AJAXu ? Vyměnit si data s databází aniž by se musela načítat znovu celá stránka. Dalo by se říct, aniž by se musel odesílat http požadavek, ale ten se samozřejmě na pozadí odesílá. Dává nám to možnost tvořit velice pěkné aplikace, vyvolávající dojem, že jde o klasické systémové aplikace (kde se také nenačítá po každém kliknutí celý program). Ale ...

Co tu bylo před AJAXem ?

Dříve se vytvářely weby přes tzv. framy. Stačilo se podívat do zdrojového kódu a u většiny webů jste nespatřili obsah, nýbrž pár řádek definující rámy. Pro příklad se můžete podívat do zdrojového kódu webu jednoho mého profesora (devden.wz.cz).

Tento způsob vytváření webu je dnes naprosto odsuzovaný a není divu (resp. je DIVu icon_smile.gif). Web se totiž strašně rychle rozšiřuje a indexovat všechny stránky manuálně je nemožné. Tak odešla éra katalogů a přišla éra vyhledávačů, které weby indexují automatizovaně. Jenže ejhle, robot přijde na Váš web s rámy a nevidí žádný obsah, odejde a vy budete rádi, když zaindexuje alespoň root webu. Nicméně možnost načítat pouze část webu tu byla.

Nevýhody: Naprosto nevhodné pro vyhledávače, některé prohlížeče rámy nepodporují.

Fajn takže weby se začali dělat za pomocí CSS a prvků, které mají minimum defaultních parametrů (div a span). Vyhledávače vesele indexovaly, ale ejhle, web se musí načítat celý. Např. při každém hlasování v anketě (kde možnost načítat pouze kousky webu má své uplatnění) se musel načíst celý web. Nejen že to je pomalé a spojené s načítáním celého okolního obsahu, který se nijak nemění, ale také s obtížným napozicováním uživatele zpět do míst, kde byl předtím.

Co tedy s tím ? No jistě, přišel AJAX.

Problém je v tom, že stránka upravená pomocí AJAXu, se v URL nijak neliší od té původní, tedy ani pro vyhledávač se nijak neliší. Udělejte si web, který bude krásně načítat články, aniž byste načítali celou stránku a uvedete je do zapomnění vyhledávačů. Robot si neprojede Vaše skvělé onclick, onchange a jiné on-whatever, prostě uvidí jednu stránku.

Nevýhody: Naprosto nevhodné pro vyhledávače, někteří uživatelé nemají JavaScript.

V čem je rozdíl ?

Čím jsme si proboha s AJAXem pomohli ? Možná tak v tom, že během výměny dat můžeme uživateli poskytnout krásnou loading animaci (někteří dokonce nechávají tyto vyměňovací skripty uměle chvíli spát, aby se animace ukázala).

Já jsem jinak zastánce AJAXu, je to skvělá věc, s kterou se dají dělat nádherné (nefunkční) weby. Ale není to pak to samé, jako byste napsali krásný web, pustili ho v Opeře, byli nadšený a tím to haslo? Pak totiž přijde uživatel se svým IE nebo osvícenec s Firefoxem a ejhle ... jinak započítanej margin s paddingem a web je naprosto rozhozenej.

Byla by to práce pro webmastera, né pro lidi. Webmater by byl nadšený svou nádhernou interaktivní grafický pěknou aplikací, pro lidi kolem však nepoužitelnou a škaredou.

Otázka zní. Přijde technologie, za pomoci níž se bude moci načítat obsah na pozadí a zároveň by byla použitelná pro vyhledávače a všechny uživatele ?

datum 18.08 /2007 - 15:12 tag programování, názory komentář 11 komentářů (přečteno: 5082x)

Související články:

Feedburner

GEOrss, už ho máš?

WebExpo 2009

Nenechte si ujít

Nejčtenější články za poslední půlrok.

Nejkomentovanější články za poslední půlrok.

Nejčastěji komentující čtenáři za poslední půlrok.

Nejkvalitnější komentář

Onecar

Nesouhlasím.

1.) Správný AJAX je napsán tak, že i když klient nepodporuje JavaScript, je mu automaticky bez jeho vědomí poskytnuta alternativa, která na 100% funguje. Např. takový odkaz , který má vyplněn atribut "href", ale při kliknutí na něj nebudeš nikam přesměrován, nýbrž se vyvolá funkce v atributu "onClick". Pokud JavaScript nemáš, tak se provede "href" a funkčnost by měla být stejná.

To, že někteří používají AJAX špatně, ještě nedělá AJAX špatným.


Zaujal vás tento článek? Nezapomeňte, že je ve vaší moci ukázat stovkám dalších lidí, že tento článek se vám libí. Stačí kliknout na následující tlačítko. pridej.cz

Chcete být upozorňován(a) na nové texty? Pak si přidejte do své RSS čtečky zdroj pro články, bleskovy nebo komentáře a buďte tak informování o všem novém.

Neváhejte napsat k článku komentář (Co je to komentář ?), pokud máte k danému tématu co říci.

check


check



icon_smile.gif icon_sad.gif icon_biggrin.gif icon_confused.gif icon_cool.gif icon_twisted.gif icon_wink.gif icon_cry.gif icon_eek.gif icon_evil.gif icon_exclaim.gif icon_frown.gif icon_cheesygrin.gif icon_idea.gif icon_lol.gif icon_mad.gif icon_mrgreen.gif icon_neutral.gif icon_question.gif icon_razz.gif icon_redface.gif icon_rolleyes.gif icon_surprised.gif icon_arrow.gif icon_arrowd.gif icon_arrowl.gif icon_arrowu.gif


Prosím odpovězte na následující otázku (do formuláře zadejte pouze písmeno).

Jakou z následujících věcí by si vybral robot?
a) štěně b) kytičku od svého milého c) pečlivě naformátovaný soubor

Nápověda: Zkuste možnost c (ale uznám vám i b).


check


1

Nesouhlasím, nicméně si myslím, že AJAX není dokonalý (vždyť to je taky spojení dvou již existujících technologií) a že něco jiného by se hodilo. Ale kdy to bude hotové? Za pět deset let?

AJAX je dobrá věc, ale jen v určité míře. Když se použije třeba při odesílání formuláře, nebude server tolik zatížený HTTP požadavky (a pokud je na stránce třeba třicet obrázků...). Pokud se ale použije na příklad, který popisuješ (přepínání článků), není to nejlepší nápad.

AJAX je v mnoha věcech lepší než rámy - už jenom v tom, že šetří server a pásmo. Z dob, kdy prohlížeče nepodporovaly rámy, už jsme dávno pryč a dnes má naprostá většina uživatelů (98 %) Javascript zapnutý.

AJAX není ztráta času, je tu, protože nic lepšího zatím není. Změnit to může akorát SilverLight, ale ten bude mít o dost menší podporu než má teď Javascript. A než se něco nového dostane do prohlížečů, tak už možná budeme v důchodu...

odpovědět

  • Na komentář odpověděl(a) Antonín Daněk v komentáři #4
Gravatar

xergic

18.08 /2007 - 15:34


brak | průměr | kvalitní názor


2

Za AJAX a moderní web děkujme Microsoftu, ten vynalezl XMLHttpRequest() a mnoho dalších technologií. Microsoft je vůbec špičkový inovátor, problém je, že přichází často příliš brzo (o řadu let) s technologiemi, které konkurence bude teprve za 5-6 let zavádět a chápat.

ActiveX je příklad staré a přitom dokonalé technologie jak primitivní HTML oživit, a provozovat na webu skutečné aplikace. XMLHttpRequest() je jeho součástí...

Dnes se k tomu vracíme a ActiveX se "posmíváme". Přitom to je průkopník.

odpovědět

  • Na komentář odpověděl(a) Antonín Daněk v komentáři #4
Gravatar

Radek Hulán

18.08 /2007 - 16:49

radek<zavináč>hulantečkacz

brak | průměr | kvalitní názor


3

Ale vždyť můžeš použít Ajax jenom na něco. Je blbost ho používat na cokoliv, takže to vyhledávače nemusí (a nemá) ovlivnit.

odpovědět

  • Na komentář odpověděl(a) Antonín Daněk v komentáři #4
Gravatar

kuba

18.08 /2007 - 17:02


brak | průměr | kvalitní názor


4

>xergic: Máš pravdu, je tu, protože nic lepšího zatím není. Dá se zkrátka použít jenom na něco a navíc programátor musí napsat alternativní verzi, která AJAX nevyužívá.
Z toho, že 98% uživatelů má JavaScript zapnutý se nedá vycházet. Už jen kvůli mobilním zařízením, na které je třeba začít brát ohled.

>Radek Hulán: To, že je XMLHttpRequest() dílo Microsoftu vím, rozhodně bych ale neřekl že Microsoft je nějakej inovátor, kterej přichází s technologiema, který jsou pro ostatní nepochopitelný. Naopak, když Microsoft přijde s něčím novým, tak se tomu hned většina podniků začne přizpůsobovat. Ostatně co mají dělat ? Když Microsoft vyplivne nějakej novej formát a celý stádo ho začne používat, tak nemají na výběr.

>kuba: Samozřejmě, můžu používat co chci. Tady jde o to, že není možnost vyměňovat data na pozadí, aniž bych tím nezničil přístupnost webu.

odpovědět

  • Tento komentář je reakcí na příspěvek #1, který napsal(a) xergic
  • Tento komentář je reakcí na příspěvek #2, který napsal(a) Radek Hulán
  • Tento komentář je reakcí na příspěvek #3, který napsal(a) kuba
Gravatar

Antonín Daněk

18.08 /2007 - 17:30

danek<zavináč>antonindanektečkacz

brak | průměr | kvalitní názor


5

To, že lidi používají Ajax špatně a neošetří stav kdy je vypnut js a pro vyhledávače je jen jejich lenost nebo neznalost. Jednoduchý příklad, který tímto netrpí: http://xy.wz.cz/ajax-simulace-...lude/

odpovědět

  • Na komentář odpověděl(a) Antonín Daněk v komentáři #7
Gravatar

Fred

19.08 /2007 - 10:42


brak | průměr | kvalitní názor


6

vdaka za fajn vysvetlujuci clanok, s ajax nemam dobre skusenosti, vacsinou sa mi to spaja s pomalymi narocnymi strankami a obcasnou nefunkcnostou niektorych veci ktore by fungovat mali ale vdaka vyssiemu zabezpeceniu nefunguju

odpovědět

  • Na komentář odpověděl(a) Antonín Daněk v komentáři #7
Gravatar

Aan

19.08 /2007 - 11:27


brak | průměr | kvalitní názor


7

>Fred: Moc pěknej příklad. Jenže to hrozně snižuje krásu AJAXu, když musíš ke všemu psát alternativu. A jsou i případy, kdy se dělá těžko.
Například formulář, kde jsou dva selecty, přičemž jeden mění nabídku na základě volby u toho druhého (používá se to často např. při zjišťování kraje - města).

>Aan: AJAXový aplikace bývají spíše rychlejší (nepřenášejí se zbytečný data, který zůstávají stejné). Ale JavaScript se vyhodnocuje na straně klienta, takže je možný že s pomalým počítačem a náročnou aplikací jsou pomalejší.

odpovědět

  • Tento komentář je reakcí na příspěvek #5, který napsal(a) Fred
  • Tento komentář je reakcí na příspěvek #6, který napsal(a) Aan
Gravatar

Antonín Daněk

19.08 /2007 - 17:01

danek<zavináč>antonindanektečkacz

brak | průměr | kvalitní názor


8

Pokazde zalezi na typu aplikace a ulohy:
- delam jednoduchy web? Je mozna zbytecne pouzit AJAX.

- delam administratorske rozhrani a napojenim na DB? Pouziju ho. Se psanim dvou ruznych rozhrani s a bez AJAXu take nesouhlasim. Vzdy zalezi jake pri vyvoji pouzivate nastroje a knihovny. Napriklad balik DHTML Suites nabizi pri pouziti formulare vyuzit AJAX a nebo ho nepouzivat. Staci pouze prepnout...

Takze je AJAX hloupost a ztrata casu? Jak kdy... Pokud autor pouzije tuto technologii v nevhodnem pripade tak urcite ano. Jinak si toto nemyslim

odpovědět

Gravatar

Radek

23.08 /2007 - 07:48


brak | průměr | kvalitní názor


9

Nesouhlasím.

1.) Správný AJAX je napsán tak, že i když klient nepodporuje JavaScript, je mu automaticky bez jeho vědomí poskytnuta alternativa, která na 100% funguje. Např. takový odkaz , který má vyplněn atribut "href", ale při kliknutí na něj nebudeš nikam přesměrován, nýbrž se vyvolá funkce v atributu "onClick". Pokud JavaScript nemáš, tak se provede "href" a funkčnost by měla být stejná.

To, že někteří používají AJAX špatně, ještě nedělá AJAX špatným.

odpovědět

  • Na komentář odpověděl(a) Antonín Daněk v komentáři #10
Gravatar

Onecar

07.10 /2007 - 19:59

onecar<zavináč>volnytečkacz

brak | průměr | kvalitní názor


10

Ale jistě, že většinou lze napsat alternativní verzi. Nicméně to, že člověk musí psát nějakou alternativní verzi, ho činí špatným. To samý už v podstatě psal Fred.

Napiš alternativní verzi třeba pro GoogleDocs. icon_smile.gif Zkrátka jak už zde taky bylo řečeno, člověk musí vědět kde ho použít a kde ne.

To všechno ale nic nemění na faktu, že ta technologie samotná má dost vážný úskalí. To, že se dají obejít jinou technologií je věc jiná.

odpovědět

  • Tento komentář je reakcí na příspěvek #9, který napsal(a) Onecar
Gravatar

Antonín Daněk

07.10 /2007 - 23:12

danek<zavináč>antonindanektečkacz

brak | průměr | kvalitní názor


11

Ajax je podle me dobra ve, ale nic se nema prehanet. icon_cool.gif

odpovědět

Gravatar

Ganaj

02.12 /2007 - 22:52

ganaj<zavináč>nepracujitečkacz

brak | průměr | kvalitní názor


Navrženo pro přenos v binární soustavě | Kdo stojí za tímto blogem? | © Antonín Daněk | Autorské dílo

TOPlist