Dojo

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 15. september 2018; checks kræver 6 redigeringer .
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.

Funktioner

Interfaceelementer

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:

Asynkron kommunikation

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>

JavaScript programmering

Mange dojo-funktioner gør JavaScript-programmering nemmere.

Pakkesystem

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.

Opbevaring på klientsiden

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.

Kritik

Indlæser

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]

Dokumentation

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]

Læringskurve

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.

API-stabilitet

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.

Dojo Foundation og sponsorat

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:

Se også

Noter

  1. Adobe Flash Player Version Penetration = . Arkiveret fra originalen den 19. februar 2012.
  2. Et interview med Dojo Toolkit Creator Dylan Schiemann . Nettuts+ (16. august 2012). Hentet 21. november 2012. Arkiveret fra originalen 27. november 2012.
  3. Dojo 1.7 udgivet! . Dojo Toolkit Blog (1. januar 2011). Hentet 21. november 2012. Arkiveret fra originalen 3. november 2012.
  4. Hvad kommer der i Dojo 1.8 . Dojo Toolkit Blog (9. februar 2012). Hentet 21. november 2012. Arkiveret fra originalen 15. november 2012.
  5. hvad er raison detre for dojo 2.0 . dojo-bidragydere (11. oktober 2012). Hentet 29. november 2012.
  6. Schiemann, Dylan jQuery og Dojos langsigtede levedygtighed . Dojo-interesse (30. april 2012). Hentet 29. november 2012. Arkiveret fra originalen 29. oktober 2014.
  7. Kritik af Dojo? (utilgængeligt link) . Syv fod høj kaktus (17. august 2012). Hentet 21. november 2012. Arkiveret fra originalen 23. november 2012.  
  8. Dojo eller jQuery . NotADojoGuru (6. april 2012). Hentet 21. november 2012. Arkiveret fra originalen 17. december 2013.
  9. "Pressemeddelelse på www.marketwire.com" (downlink) . Arkiveret fra originalen den 15. juni 2006. 
  10. "Pressemeddelelse på prnewswire.com" . Arkiveret fra originalen den 19. februar 2012.

Links