Dojo

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 15 septembrie 2018; verificările necesită 6 modificări .
Setul de instrumente Dojo
Tip de Setul de instrumente JavaScript
Dezvoltator Fundația Dojo
Scris in JavaScript
Sistem de operare Software multiplatformă
Prima editie 2004
ultima versiune 1.15.0 ( 16 februarie 2019 )
Licență Licența BSD și Licența Academică Liberă
Site-ul web dojotoolkit.org

Dojo ( dojo ) este o bibliotecă JavaScript modulară gratuită . Conceput pentru a facilita accelerarea dezvoltării aplicațiilor și site-urilor bazate pe JavaScript sau AJAX . Dezvoltarea bibliotecii a fost începută de Alex Roussel în 2004 . Biblioteca se află sub o licență dublă : BSD License și Academic Free License . Fundația Dojo  este o organizație non-profit creată pentru a promova Dojo.

Dojo a fost folosit în Zend Framework începând cu versiunea 1.6.0.

Caracteristici

Elemente de interfață

Elementele de interfață Dojo sunt pachete formate din componente: cod JavaScript , marcaj HTML și CSS . Acestea pot fi folosite pentru a adăuga diverse funcții interactive unui site:

Comunicare asincronă

Una dintre caracteristicile importante ale aplicațiilor AJAX este comunicarea asincronă între browser și server: datorită schimbului de informații, vizualizarea paginii este actualizată fără a reîncărca pagina. Acest lucru se face de obicei folosind obiectul JavaScript XMLHttpRequest . Dojo oferă o clasă „wrapper” ( dojo.io.bind) care vă permite să abstrageți diferitele implementări ale XMLHttpRequest în browsere, inclusiv pe cele care rulează prin <iframe>. Folosind această tehnologie, devine ușor să creați aplicații care transmit intrarea utilizatorului către server. Serverul poate răspunde cu ceva JavaScript și poate actualiza vizualizarea paginii.

Programare JavaScript

Multe caracteristici dojo facilitează programarea JavaScript.

Sistem de pachete

Dojo oferă un sistem de pachete care ușurează modularizarea funcționalității pachetelor și sub-pachetelor. Scriptul „boot” inițializează un set de spații de nume de pachete ierarhice - „io”, „eveniment”, etc. - în interiorul spațiului de nume rădăcină „dojo”. Odată ce spațiul de nume rădăcină a fost inițializat, orice pachet Dojo poate fi încărcat (folosind XMLHttpRequest sau o metodă similară) folosind funcții speciale de script de încărcare. De asemenea, este posibil să inițializați spații de nume suplimentare în interiorul sau în afara spațiului de nume „dojo”, permițând extinderea dojo-ului sau să dezvolte spații de nume private pentru biblioteci și aplicații terțe. Un pachet dojo poate conține multe fișiere. Orice pachet sau fișier poate defini dependențe de alte fișiere sau pachete. Când un astfel de pachet este încărcat, toate dependențele necesare sunt încărcate automat.

Stocare pe partea clientului

Dojo oferă un magazin de date abstract la nivelul clientului numit Dojo Storage. Dojo Storage permite aplicațiilor web să stocheze megaocteți de date pe partea clientului, în mod permanent și în siguranță, cu drepturi de utilizator. Dojo Storage a fost implementat pentru marea majoritate a browserelor web utilizate pe scară largă, inclusiv Internet Explorer , Mozilla Firefox și Safari . Odată inclus într-o pagină web, Dojo Storage determină cea mai potrivită metodă de stocare a informațiilor. Firefox 2 folosește o interfață nativă, alte browsere folosesc un applet Flash ascuns . Deoarece Flash 6+ este instalat pe aproximativ 95% din computerele din întreaga lume, [1] acest mecanism de stocare este accesibil pentru majoritatea. Pentru acele aplicații web care se încarcă din sistemul de fișiere (adică URL = fișier://…), Dojo Storage va folosi în mod transparent XPCOM în Firefox sau ActiveX în Internet Explorer . Programatorul care folosește dojo nu trebuie să se gândească la detaliile implementării - el pune doar mâna pe metodele abstracte put() și get().

Critica

Se încarcă

Versiunile timpurii ale lui Dojo aveau reputația de a fi voluminoase și lente de încărcat. [2] În plus, au fost necesare lucrări suplimentare pentru a permite încărcarea pe mai multe domenii a Dojo, cum ar fi prin rețelele de livrare a conținutului . Abordarea acestor probleme a fost un obiectiv major de proiectare pentru Dojo 1.7, care a introdus AMD ( Asynchronous Module Loading) și încărcătorul „nano”. [3]

Documentație

Dojo a fost mult timp criticat pentru documentația sa incompletă, inexactă și învechită. Pentru a rezolva aceste probleme, dezvoltatorii au făcut multe remedieri la documentația pentru versiunea 1.8, inclusiv noi manuale, API Browser, noi capitole și actualizarea majorității exemplelor de cod pentru a se conforma stilului de încărcare a modulului asincron . [4] [5]

S-au scris mai multe cărți despre Dojo, dar aproape toate tratează Dojo 1.3 sau o versiune anterioară, iar multe dintre cărți sunt învechite. Suportul AMD și refactorizarea aferentă aplicației nu sunt acoperite, exemplele de cod din aceste cărți nu se aplică bine versiunilor moderne ale cadrului, iar practicile descrise nu sunt bune. Mulți autori așteaptă lansarea Dojo 2.0 înainte de a publica ceva nou. [6]

Curba de învățare

Mulți susțin că Dojo este mult mai greu de învățat și de început decât biblioteca jQuery mai populară . [7] [8]

Coautorul Dojo Dylan Scheinmann explică acest lucru ca o diferență de opinie:

Desigur, este mult mai ușor să înveți ceva mic decât ceva care face mai mult, dar utilizatorii noștri exigenți ajung rapid la concluzia că o învățare mai completă acum economisește multe ore în viitor pentru lucruri pe care Dojo le face mai ușor de realizat.

Text original  (engleză)[ arataascunde] Cu siguranță este mai ușor să înveți ceva care este mai mic decât ceva care face mai mult, dar utilizatorii noștri pasionați se grăbesc să sublinieze că un pic mai multă învățare în avans le economisește nenumărate ore pentru lucruri pe care Dojo le face ușor.

Stabilitatea API

Utilizatorii versiunilor anterioare au avut dificultăți în migrarea la versiunea 1.0 după ce setul de instrumente a fost complet rescris. Trecerea la AMD în versiunile recente a creat o problemă similară. Dezvoltatorii Dojo au depus mult efort în compatibilitatea cu înapoi, în ciuda evoluției destul de rapide a cadrului, în care părți mari din API-ul actual, deși depreciat, sunt încă acceptate. În ciuda acestui fapt, destul de des atunci când fac upgrade, utilizatorii constată că totul nu a decurs atât de bine pe cât se așteptau.

Se așteaptă ca viitoarea lansare 2.0 să elimine părți ale API-ului depreciat, dar va rămâne în mare parte compatibilă cu versiunea 1.8.

Fundația Dojo și sponsorizare

IBM [9] și Sun Microsystems [10] au anunțat sprijin oficial pentru Dojo, inclusiv contribuții la dezvoltarea bibliotecii de bază. Fundația Dojo este o organizație non-profit creată pentru a sprijini și promova Dojo. Membrii și sponsorii săi sunt:

Vezi și

Note

  1. Adobe Flash Player Version Penetration = . Arhivat din original pe 19 februarie 2012.
  2. Un interviu cu creatorul Dojo Toolkit Dylan Schiemann . Nettuts+ (16 august 2012). Consultat la 21 noiembrie 2012. Arhivat din original pe 27 noiembrie 2012.
  3. Dojo 1.7 Lansat! . Blog Dojo Toolkit (1 ianuarie 2011). Consultat la 21 noiembrie 2012. Arhivat din original pe 3 noiembrie 2012.
  4. Ce urmează în Dojo 1.8 . Blog Dojo Toolkit (9 februarie 2012). Consultat la 21 noiembrie 2012. Arhivat din original pe 15 noiembrie 2012.
  5. care este motivul pentru dojo 2.0 . dojo-contributors (11 octombrie 2012). Preluat la 29 noiembrie 2012.
  6. Schiemann, Dylan jQuery și viabilitatea pe termen lung a Dojo . Dojo-interest (30 aprilie 2012). Consultat la 29 noiembrie 2012. Arhivat din original la 29 octombrie 2014.
  7. Critica la adresa Dojo? (link indisponibil) . Seven Foot Tall Cactus (17 august 2012). Consultat la 21 noiembrie 2012. Arhivat din original pe 23 noiembrie 2012.  
  8. Dojo sau jQuery . NotADojoGuru (6 aprilie 2012). Consultat la 21 noiembrie 2012. Arhivat din original pe 17 decembrie 2013.
  9. „Comunicat de presă pe www.marketwire.com” (downlink) . Arhivat din original pe 15 iunie 2006. 
  10. „Comunicat de presă pe prnewswire.com” . Arhivat din original pe 19 februarie 2012.

Link -uri