Dojo Toolkit | |
---|---|
Type | JavaScript -værktøjssæt |
Udvikler | Dojo Foundation |
Skrevet i | JavaScript |
Operativ system | Cross-platform software |
Første udgave | 2004 |
nyeste version | 1.15.0 ( 16. februar 2019 ) |
Licens | BSD-licens og Academic Free License |
Internet side | dojotoolkit.org |
Dojo ( dojo ) er et gratis modulært JavaScript-bibliotek . Designet til at gøre det nemmere at fremskynde udviklingen af JavaScript eller AJAX- baserede applikationer og websteder. Udviklingen af biblioteket blev startet af Alex Roussel i 2004 . Biblioteket er under en dobbelt licens : BSD License og Academic Free License . Dojo Foundation er en non-profit organisation oprettet for at promovere Dojo.
Dojo er blevet brugt i Zend Framework siden version 1.6.0.
Dojo-grænsefladeelementer er pakker dannet af komponenter: JavaScript -kode, HTML -markering og CSS . De kan bruges til at tilføje forskellige interaktive funktioner til et websted:
En af de vigtige funktioner i AJAX-applikationer er asynkron kommunikation mellem browseren og serveren: takket være udvekslingen af information opdateres sidevisningen uden at genindlæse siden. Dette gøres normalt ved hjælp af XMLHttpRequest JavaScript - objektet . Dojo giver en "wrapper"-klasse ( ), der giver dig mulighed for at abstrahere de forskellige implementeringer af XMLHttpRequest i browsere, inklusive dem, der kører gennem . Ved at bruge denne teknologi bliver det nemt at skabe applikationer, der sender brugerinput til serveren. Serveren kan svare med noget JavaScript og opdatere sidevisningen. dojo.io.bind<iframe>
Mange dojo-funktioner gør JavaScript-programmering nemmere.
Dojo leverer et pakkesystem, der gør det nemt at modularisere funktionaliteten af pakker og underpakker. "boot" -scriptet initialiserer et sæt hierarkiske pakkenavneområder - "io", "begivenhed" osv. - inde i rodnavnerummet "dojo". Når rodnavneområdet er blevet initialiseret, kan enhver Dojo-pakke indlæses (ved hjælp af XMLHttpRequest eller en lignende metode) ved hjælp af specielle load-script-funktioner. Det er også muligt at initialisere yderligere navnerum inden for eller uden for "dojo"-navneområdet, hvilket gør det muligt at udvide dojoen eller udvikle private navnerum til tredjepartsbiblioteker og -applikationer. En dojo-pakke kan indeholde mange filer. Enhver pakke eller fil kan definere afhængigheder af andre filer eller pakker. Når en sådan pakke indlæses, indlæses alle nødvendige afhængigheder automatisk.
Dojo tilbyder et abstrakt datalager på klientsiden kaldet Dojo Storage. Dojo Storage giver webapplikationer mulighed for at gemme megabyte data på klientsiden, permanent og sikkert, med brugerrettigheder. Dojo Storage er blevet implementeret til langt de fleste udbredte webbrowsere, herunder Internet Explorer , Mozilla Firefox og Safari . Når først inkluderet på en webside, bestemmer Dojo Storage den mest passende metode til lagring af information. Firefox 2 bruger en indbygget grænseflade, andre browsere bruger en skjult Flash- applet . Da Flash 6+ er installeret på cirka 95 % af computere verden over, [1] er denne lagermekanisme tilgængelig for de fleste. For de webapplikationer, der indlæses fra filsystemet (dvs. URL =file://...), vil Dojo Storage transparent bruge XPCOM i Firefox eller ActiveX i Internet Explorer . Programmereren, der bruger dojo, behøver ikke tænke på implementeringsdetaljer - han får bare fingrene i de abstrakte put() og get() metoder.
Tidlige versioner af Dojo havde ry for at være omfangsrige og langsomme at indlæse. [2] Derudover var der behov for yderligere arbejde for at muliggøre indlæsning af Dojo på tværs af domæner, såsom gennem indholdsleveringsnetværk . At løse disse problemer var et stort designmål for Dojo 1.7, som introducerede Asynchronous Module Loading (AMD) og "nano"-loaderen. [3]
Dojo er længe blevet kritiseret for sin ufuldstændige, unøjagtige og forældede dokumentation. For at løse disse problemer har udviklerne lavet mange rettelser til dokumentationen til version 1.8, herunder nye manualer, API-browseren, nye kapitler og opdatering af de fleste kodeeksempler, så de passer til den asynkrone modulindlæsningsstil . [4] [5]
Der er skrevet flere bøger om Dojo, men næsten alle omhandler Dojo 1.3 eller tidligere, og mange af bøgerne er forældede. AMD-understøttelse og relateret refactoring af applikationen er ikke dækket, kodeeksemplerne i disse bøger passer ikke godt til moderne versioner af frameworket, og den beskrevne praksis er ikke god. Mange forfattere venter på udgivelsen af Dojo 2.0, før de udgiver noget nyt. [6]
Mange hævder, at Dojo er betydeligt sværere at lære og komme i gang med end det mere populære jQuery- bibliotek . [7] [8]
Dojo-medforfatter Dylan Scheinmann forklarer dette som en meningsforskel:
Det er selvfølgelig meget nemmere at lære noget lille end noget, der gør mere, men vores kræsne brugere kommer hurtigt til den konklusion, at mere komplet læring nu sparer mange timer i fremtiden for ting, som Dojo gør det nemmere at gøre.
Originaltekst (engelsk)[ Visskjule] Det er bestemt nemmere at lære noget, der er mindre end noget, der gør mere, men vores ivrige brugere er hurtige til at påpege, at lidt mere læring på forhånd sparer dem for utallige timer for ting, som Dojo gør nemme.Brugere af tidligere versioner havde svært ved at migrere til version 1.0, efter at værktøjssættet var blevet fuldstændigt omskrevet. Skiftet til AMD i de seneste versioner har skabt et lignende problem. Udviklerne af Dojo lægger mange kræfter i bagudkompatibilitet på trods af den ret hurtige udvikling af rammeværket, hvor store dele af den nuværende API, selvom den er forældet, stadig understøttes. På trods af dette oplever brugerne ofte, når de opgraderer, at alt ikke gik så glat, som de havde forventet.
Den kommende 2.0-udgivelse forventes at fjerne dele af den forældede API, men forbliver for det meste kompatibel med version 1.8.
IBM [9] og Sun Microsystems [10] har annonceret officiel støtte til Dojo, herunder bidrag til udviklingen af kernebiblioteket. Dojo Foundation er en non-profit organisation skabt for at støtte og promovere Dojo. Dets medlemmer og sponsorer er:
JavaScript | |
---|---|
Ideer | |
Kompilere | |
Motorer | |
Biblioteker og rammer | |
Redaktører | |
Værktøjer |
|
Relaterede teknologier | |
Mennesker | |
Kategori |
af GUI-elementer | Værktøjssæt (sæt)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lavt niveau |
| ||||||||||||||||||||||||||
højt niveau |
|