Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, je commences tout juste à utiliser Dojo hors projet. Je trouve que c'est très bien, le seul problème qui me dérange est la quantité de fichié loadé par dojo.
En fait, je suis persuadé que dojo load sa librairie complète alors que j'ai besoin d'utiliser que quelques modules.
J'aimerais savoir, d'après l'intégration suivante, comment est-ce possible de réduire la quantité de fichiers appelés:
Layout.phtml
<?php if ($this->dojo()->isEnabled()){ Zend_Dojo_View_Helper_Dojo::setUseDeclarative(); $this->dojo()->setDjConfigOption('usePlainJson',true) ->setLocalPath('/js/dojo/dojo.js') ->addStyleSheetModule('dijit.themes.tundra') ->addStylesheet('/js/dojox/grid/_grid/tundraGrid.css'); echo $this->dojo(); } ?>
index.phtml : On peut voir ici mes require, c'est ce que j'ai seulement de besoin
<script type="text/javascript"> dojo.require("dijit.Dialog"); dojo.require("dijit.form.TextBox"); dojo.require("dijit.form.TimeTextBox"); dojo.require("dijit.form.Button"); dojo.require("dijit.form.DateTextBox"); </script> <button dojoType="dijit.form.Button" onclick="dijit.byId('dialog1').show()">Show Dialog</button> <div dojoType="dijit.Dialog" id="dialog1" title="First Dialog" execute="alert('submitted w/args:\n' + dojo.toJson(arguments[0], true));"> <table> <tr> <td><label for="name">Name: </label></td> <td><input dojoType="dijit.form.TextBox" type="text" name="name" id="name"></td> </tr> </table> </div>
J'ai essayé plusieurs façon de loadé mes fichiers mais sans succès, alors après plusieurs recherches, j'ai découvert le système de layout (builds) pour dojo. Enfin, très dur à comprendre et peu de gens l'utilise:
http://framework.zend.com/manual/fr/zen … ayers.html
J'aimerais avoir vos commentaires et informations sur le sujet pour m'éclaire et optimiser de nombreux projets.
Merci !
Hors ligne
Salut,
Je n'ai pas encore essayé la version Zend mais si tu comprends un peu l'anglais, cette page t'explique comment créer un profile pour dojo pour ensuite créer une release des modules dojo que tu utilises.
http://www.dojotoolkit.org/book/dojo-bo … tom-builds
J'éspère que cela pourra t'aider !
++
Hors ligne
Merci, j'avais déjà vu cette page, en fait, je crois avoir réussis la création de layer, mais resque je si je désactive mon dojo au début, rien ne fonctionne plus malgré l'intégration d'un layer et c'est plustôt la que je bloque.
Hors ligne
Hey toi qui lis ce message, tu as surement utilisé Dojo pour t'interesser à ce thread ! Allez ! Explique ton astuce pour réduire les milliers de fichiers .js qui se load avec l'intégration de Dojo à quelques uns afin d'aider plusieurs utilisateurs de Dojo !
Ton aide sera grandement remercié !
Hors ligne
Dojo ou Dijits ?
Dojo seul fait a peine 27ko, et comprend tout le core Dojo,
Dijit c'est un UI, la plus part des fichiers a chargé sont des images et des templates html, c'est dur d'avoir quelque chose de tres complet et de tres léger, faire un joli formulaire en java, actionscript, ou javascript y'aura toujours un temps de chargement,
rien n'empche de faire un barre de chargement et afficher un fois que c'est terminer
un petit tour des etendus ici :
http://download.dojotoolkit.org/release … ester.html
sinon normalement pas besion de precharger les library Zend le fait automatiquement, vous conseil aussi de ne pas utilisé "parseOnLoad" qui permet d'avoir des pages valide xhtml
Hors ligne
Tu as un moyen plus ou moins simple de faire ta propre build de dojo ce qui permet de charger dans un seul fichier l'essentiel de ce que tu utilises comme composants dojo.
Pour cela il faut utiliser la version complete de dojo ou celle fournie par Zend Framework.
http://www.dojotoolkit.org/book/dojo-bo … tom-builds
Va voir la, c'est assez bien expliqué et très efficace car tu passes de 50 fichiers chargés à 4/5 (les fichiers traductions ne sont pas inclus de base mais tu peux le faire en option)
Hors ligne
Ouais c'est la solution qui reviens partout et qui est même dans la doc officiel.
J'ai fait une première tentative de créer mon propre build, c'est assez particulier comme technique avec des .bat et des .sh. Je vais devoir faire une autre tentative aujourd'hui parce que je comprends plus ou moins la procédure.
C'est l'étape qui me mélange, Rhino je sais pas c'est quoi...
"After specifying a profile file as shown above that statically specifies the resources you want to include, and saving it as /buildscripts/profiles/foo.profile.js, you run the Rhino interpreter on it and specify the profile name as a parameter. For example, from the buildscripts directory"
Dernière modification par probitaille (08-09-2009 15:37:44)
Hors ligne
Bon, j'ai réussis à créer ce fichier mydojo.js avec le build proposé, si vous êtes sous windows, faite pas la connerie d'écrire le .sh mais bien le .bat !!
Par contre, j'ai bien beau linker mon layer dans mon application, mais j'ai des tonnes de scripts qui sont loadé et tout fonctionne à moitié. Bref, j'ai même regardé ce tuto mais j'ai un problème quelques part:
http://www.zend.com/webinar/Framework-D … 080903.flv
Hors ligne
tu as mis quoi dans ton profile.js ?
Hors ligne
J'ai enfin réussis ! Mon profile est un peu chargé mais tout load beaucoup plus vite sauf la connexion avec la base de donnés et la transformation Json...voici les sources:
bootstrap
Zend_Dojo::enableView($view); $view->dojo() ->setDjConfigOption('parseOnLoad',true) ->addStyleSheetModule('dijit.themes.tundra') ->addStylesheet('/js/dojox/grid/_grid/tundraGrid.css') ->setLocalPath('/js/dojo/dojo.js') ->addLayer('/js/dojo/mydojo.js') //->addJavascript('custom.main.init()') ->disable();
layout
echo $this->dojo();
index.phtml
<button dojoType="dijit.form.Button" onclick="dijit.byId('dialog1').show()">Show Dialog</button>
Hors ligne
Pages: 1