Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-09-2009 21:10:03

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

[1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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

Code:

 <?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

Code:

<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

 

#2 02-09-2009 14:10:37

ubini
Membre
Lieu: gillarens/Suisse
Date d'inscription: 23-01-2008
Messages: 110
Site web

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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 !

++


http://www.easyswap.org - site d'échange de biens et de services conçu avec jQuery et Zend Framework
http://www.lambelet.net - mon blog perso et inutile

Hors ligne

 

#3 02-09-2009 14:46:54

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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

 

#4 04-09-2009 21:06:17

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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

 

#5 07-09-2009 01:47:21

stealth35
Membre
Date d'inscription: 30-08-2009
Messages: 29

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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

 

#6 07-09-2009 10:29:30

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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

 

#7 08-09-2009 14:52:04

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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

 

#8 08-09-2009 16:53:36

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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

 

#9 08-09-2009 16:56:24

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

tu as mis quoi dans ton profile.js ?

Hors ligne

 

#10 08-09-2009 17:57:33

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [1.8.3][Zend_Dojo] Loading Dojo -> Améliorer les performances de Dojo

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

Code:

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

Code:

 echo $this->dojo();

index.phtml

Code:

<button dojoType="dijit.form.Button" onclick="dijit.byId('dialog1').show()">Show Dialog</button>

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages