2009-06-12 10 views
8

Je commence à utiliser Dojo; c'est (essentiellement) mon introduction à AJAX. Nous avons un backend Java (couple/turbine/vitesse) et utilisons la bibliothèque JSON-RPC jabsorb pour faire le pont entre Java et Javascript.Dojo essentiel

Que dois-je savoir? Quelle est la grande image de Dojo et JSON, et quels sont les petits détails méchants qui me rattraperont? Qu'avez-vous passé quelques jours à traquer, lorsque vous avez commencé avec Dojo, que vous tenez maintenant pour acquis? Merci pour tous les conseils.

+2

Si vous démarrez simplement AJAX et que vous n'avez pas besoin de DOJO, vous pouvez passer à jQuery. Il a une API très simple et une très petite courbe d'apprentissage. – jconlin

+0

Merci, jconlin, mais je n'ai pas l'option. –

+2

J'ai trouvé que beaucoup de groupes qui utilisent Java sur le backend comme Dojo sur le frontend. Pas certain de pourquoi. Dojo a une courbe plus raide, mais il a ajouté beaucoup de syntaxe similaire à jQuery. J'aime les trucs pubsub. – Nosredna

Répondre

9

La première chose à faire est de se familiariser avec le Dojo Object Model. JavaScript n'a pas de système de classe, donc la boîte à outils Dojo a créé une sorte de modèle d'objet "par convention" qui fonctionne plutôt bien mais qui est très différent de la façon dont cela fonctionne en Java par exemple.

La raison pour laquelle je vous suggère de vous familiariser avec ce code est que vous pouvez creuser dans la base de code chaque fois que vous commencez à rencontrer des problèmes. La documentation disponible s'est considérablement améliorée au cours de la dernière année, mais de temps en temps je me retrouve à devoir résoudre un bug dans mon code en apprenant exactement comment le code Dojo fonctionne.

Une autre astuce consiste à utiliser la fonction de construction personnalisée qui améliorera considérablement les performances une fois que votre application sera prête.

En guise de conseil général sur la programmation DHTML, utilisez firebug (un plug-in pour Firefox). Il permet le débogage JavaScript, l'inspection DOM, l'édition HTML en temps réel et bien plus encore. Je suis devenu totalement dépendant maintenant quand je travaille en DHTML!

Bonne chance!

+0

Donal: existe-t-il un "Dojo Object Model" spécifique à Dojo, ou est-ce le DOM - Document Object Model - ou il me manque quelque chose? THX. – philant

+0

Il est spécifique à Dojo et, selon leurs propres termes, "fonctionne pour simuler" un système de classe. Vous pouvez en lire plus à ce sujet ici http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/object-orientation –

+2

Il n'y a rien de tel que le capitalisme " Modèle d'objet Dojo ". Dojo adopte une approche orientée objet pseudo-classique, c'est-à-dire que vous pouvez écrire des classes. Ne le déformez pas. –

5

Je me suis aussi tout simplement plongé dans Dojo, ils ont une bonne documentation API au http://api.dojotoolkit.org/. Même Dojo Campus a quelques bons exemples de plugins.

Si vous me demandez de O'Reilly Dojo: Le Guide définitif est le meilleur livre de Dojo sur le marché.

Je voudrais également des conseils et des pointeurs des maîtres Dojo.

Vive

5

Assurez-vous que la documentation que vous avez lue est la plus récente possible car beaucoup de choses ont changé très rapidement dans l'architecture Dojo. Un excellent moyen de voir comment un widget Dojo ou Dijit est utilisé est aussi de regarder le code source des tests - par exemple, le DataGrid a une mauvaise documentation mais les tests montrent beaucoup de cas d'utilisation et de configurations.

Sitepen est une bonne ressource pour Dojo articles.

En outre, lire sur Deferred (et DeferredList), ainsi que hitch() - deux fonctionnalités extrêmement flexibles et puissants de Dojo. SitePen a un bon article sur la démystification Deferred s.

Découvrez plugd, une collection d'extensions Dojo qui rendent certaines choses plus pratiques ou qui ajoutent des fonctionnalités intelligentes au langage. C'est fait par l'un des principaux auteurs de Dojo, donc c'est plutôt fiable. Il apporte même quelques subtilités jQuery dans le cadre. Quelques autres choses: regardez dans les magasins de données, ils sont très utiles et une façon beaucoup plus propre de gérer Ajax.DojoX en a aussi beaucoup, rappelez-vous que les gammes DojoX sont bien documentées ou expérimentales. Apprenez les différences entre dojo.byId et dijit.byId, ainsi que les attributs HTML id par rapport à jsId (encore une fois, Sitepen a un article).

+0

Merci; Tout cela est très utile. –

+0

Une remarque, les ajouts différés sont bons pour faire des processus asynchrones comme les appels Ajax se comporter de manière synchrone, comme si vous deviez attendre que certains appels ajax reviennent avant de passer à l'étape suivante. – aehlke

4

Un couple de choses qui m'a pris quand je commencé à écrire des widgets où:

[Comprendre ce dojoAttachPoint, dojoAttachEvent, containerNode et widgitsInTemplate font] [1]

ont une prise ferme de la fermeture,

Obtenez votre tête deferreds autour

comprennent ItemFileReadStore, ItemFileWriteStore et magasins en général

Vous pouvez regarder des magasins comme un ResultSet (sorte de) et vous pouvez les lier à des widgets. Avec ces concepts majeurs, vous pouvez commencer à assembler des applications convaincantes.

Généralement ce que je fais est de construire une façade JavaScript autour de mes appels de service et puis je vais frotter la réponse dans un magasin en attachant le premier rappel dans la façade, ce rappel convertit les résultats dans un magasin puis le renvoie . Cela me permet de ne pas lier durement mes services aux constructions Dojo (donc je peux supporter le mobile, etc.) tout en réaccordant les données de la façade dans un format attendu par les widgets sensibles aux données.

De même, si vous faites du développement de service Java, vous voulez regarder JAX-RS. J'ai commencé en utilisant JSON-RPC qui est devenu JABS-ORB mais après avoir travaillé avec JAX-RS je le préfère, car il s'intègre bien avec JPA-EJB et JAXB.

0

Lisez d'abord comment configurer Dojo dans votre application. Essayez de comprendre la structure de base de Dojo comme si nous écrivons dijit.form.Button ou dijit/form/Button cela signifie que Button.js réside dans le dossier dijit/form. Essayez de comprendre require, define, declare les modules de Dojo. C'est suffisant pour démarrer Dojo Toolkit.

Fait très important, se livrer avec votre propre projet d'exemple en utilisant Dojo.