Dojo Toolkit | |
---|---|
Typ | JavaScript toolkit |
Vývojář | Nadace Dojo |
Zapsáno v | JavaScript |
Operační systém | Multiplatformní software |
První vydání | 2004 |
Nejnovější verze | 1.15.0 ( 16. února 2019 ) |
Licence | Licence BSD a Akademická bezplatná licence |
webová stránka | dojotoolkit.org |
Dojo ( dojo ) je bezplatná modulární knihovna JavaScriptu . Navrženo tak, aby usnadnilo urychlení vývoje aplikací a stránek založených na JavaScriptu nebo AJAX . Vývoj knihovny zahájil Alex Roussel v roce 2004 . Knihovna je pod dvojí licencí : BSD License a Academic Free License . Nadace Dojo je nezisková organizace vytvořená za účelem propagace Dojo.
Dojo se v Zend Framework používá od verze 1.6.0.
Prvky rozhraní Dojo jsou balíčky tvořené komponentami: kód JavaScript , značka HTML a CSS . Lze je použít k přidání různých interaktivních funkcí na web:
Jednou z důležitých funkcí aplikací AJAX je asynchronní komunikace mezi prohlížečem a serverem: díky výměně informací se zobrazení stránky aktualizuje bez opětovného načítání stránky. To se obvykle provádí pomocí objektu JavaScript XMLHttpRequest . Dojo poskytuje třídu "wrapper" ( dojo.io.bind), která vám umožňuje abstrahovat různé implementace XMLHttpRequest v prohlížečích, včetně těch, které běží přes <iframe>. Pomocí této technologie je snadné vytvářet aplikace, které předávají uživatelské vstupy na server. Server může odpovědět nějakým JavaScriptem a aktualizovat zobrazení stránky.
Mnoho funkcí dojo usnadňuje programování JavaScriptu.
Dojo poskytuje systém balíčků, který usnadňuje modularizaci funkčnosti balíčků a dílčích balíčků. Skript "boot" inicializuje sadu hierarchických jmenných prostorů balíčků - "io", "event" atd. - uvnitř kořenového jmenného prostoru "dojo". Jakmile je kořenový jmenný prostor inicializován, lze načíst jakýkoli balíček Dojo (pomocí XMLHttpRequest nebo podobnou metodou) pomocí speciálních funkcí načítacího skriptu. Je také možné inicializovat další jmenné prostory uvnitř nebo vně jmenného prostoru "dojo", což umožňuje rozšíření dojo nebo vývoj soukromých jmenných prostorů pro knihovny a aplikace třetích stran. Balíček dojo může obsahovat mnoho souborů. Jakýkoli balíček nebo soubor může definovat závislosti na jiných souborech nebo balíčcích. Po načtení takového balíčku se automaticky načtou všechny potřebné závislosti.
Dojo poskytuje abstraktní úložiště dat na straně klienta s názvem Dojo Storage. Dojo Storage umožňuje webovým aplikacím ukládat megabajty dat na straně klienta trvale a bezpečně s uživatelskými právy. Dojo Storage bylo implementováno pro drtivou většinu široce používaných webových prohlížečů, včetně Internet Explorer , Mozilla Firefox a Safari . Po zahrnutí do webové stránky Dojo Storage určí nejvhodnější metodu pro ukládání informací. Firefox 2 používá nativní rozhraní, ostatní prohlížeče používají skrytý Flash applet . Vzhledem k tomu, že Flash 6+ je nainstalován na přibližně 95 % počítačů po celém světě, [1] je tento úložný mechanismus přístupný většině. Pro ty webové aplikace, které se načítají ze systému souborů (tj. URL =soubor://…), úložiště Dojo bude transparentně používat XPCOM ve Firefoxu nebo ActiveX v Internet Exploreru . Programátor používající dojo nemusí přemýšlet o detailech implementace – stačí mu získat abstrahované metody put() a get().
Rané verze Dojo měly pověst objemných a pomalých načítání. [2] Kromě toho byla potřeba další práce, aby bylo umožněno načítání Dojo napříč doménami, například prostřednictvím sítí pro doručování obsahu . Řešení těchto problémů bylo hlavním cílem návrhu pro Dojo 1.7, které zavedlo asynchronní načítání modulů (AMD) a zavaděč „nano“. [3]
Dojo je dlouhodobě kritizováno za svou neúplnou, nepřesnou a zastaralou dokumentaci. Aby se tyto problémy vyřešily, vývojáři provedli mnoho oprav v dokumentaci pro verzi 1.8, včetně nových příruček, prohlížeče API, nových kapitol a aktualizace většiny příkladů kódu, aby odpovídaly stylu načítání asynchronních modulů . [4] [5]
O Dojo bylo napsáno několik knih, ale téměř všechny se zabývají Dojo 1.3 nebo staršími a mnoho knih je zastaralých. Podpora AMD a související refaktoring aplikace nejsou zahrnuty, příklady kódu v těchto knihách se nedají dobře aplikovat na moderní verze frameworku a popsané postupy nejsou dobré. Mnoho autorů čeká na vydání Dojo 2.0, než zveřejní něco nového. [6]
Mnozí tvrdí, že je podstatně těžší se naučit a začít s Dojo než s populárnější knihovnou jQuery . [7] [8]
Spoluautor Dojo Dylan Scheinmann to vysvětluje jako rozdíl v názorech:
Samozřejmě je mnohem snazší naučit se něco malého než něco, co umí více, ale naši nároční uživatelé rychle docházejí k závěru, že dokonalejší učení nyní ušetří mnoho hodin v budoucnu na věci, které Dojo usnadňuje.
Původní text (anglicky)[ zobrazitskrýt] Je určitě snazší naučit se něco, co je menší než něco, co umí víc, ale naši zapálení uživatelé rychle poukazují na to, že trochu více učení dopředu jim ušetří nespočet hodin na věci, které Dojo usnadňuje.Uživatelé dřívějších verzí měli potíže s migrací na verzi 1.0 poté, co byla sada nástrojů kompletně přepsána. Přechod na AMD v posledních verzích vytvořil podobný problém. Vývojáři Dojo vynaložili velké úsilí na zpětnou kompatibilitu, navzdory poměrně rychlému vývoji frameworku, ve kterém jsou velké části současného API, i když zastaralé, stále podporovány. Navzdory tomu poměrně často uživatelé při upgradu zjistí, že vše neprobíhalo tak hladce, jak očekávali.
Očekává se, že nadcházející vydání 2.0 odstraní části zastaralého API, ale zůstane většinou kompatibilní s verzí 1.8.
IBM [9] a Sun Microsystems [10] oznámily oficiální podporu pro Dojo, včetně příspěvků na vývoj základní knihovny. Nadace Dojo je nezisková organizace vytvořená za účelem podpory a propagace Dojo. Jejími členy a sponzory jsou:
JavaScript | |
---|---|
Nápady | |
Kompilátory | |
Motory | |
Knihovny a rámce | |
redaktoři | |
Nástroje |
|
Související technologie | |
Lidé | |
Kategorie |
prvků GUI | Toolkity (sady)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
na nízké úrovni |
| ||||||||||||||||||||||||||
vysoká úroveň |
|