Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-04-2016 10:43:51

epcgroupe
Membre
Date d'inscription: 18-01-2016
Messages: 44

[zf2][Process]Amélioration des temps d'éxécution

Bonjour,

J'ai un problème sur mes appel de java scripts : j'ai deux secondes de latence sur certaine page.
J'ai remarquer que ce temps change en fonction de la position des appel de script dans le layout.

Est que vous avez des conseils pour résoudre ce soucis ?
Est il possible de faire certain appel directement sur la page concerné ?

Code:

[lang=php]
$this->headScript()
            ->appendFile($this->basePath() . '/js/jquery-1.11.2.min.js')
            ->appendFile($this->basePath() . '/js/jquery.easing.min.js')
            ->appendFile($this->basePath() . '/plugins/bootstrap/js/bootstrap.min.js')  
            ->appendFile($this->basePath() . '/plugins/pace/pace.min.js')
            ->appendFile($this->basePath() . '/plugins/perfect-scrollbar/perfect-scrollbar.min.js')
            ->appendFile($this->basePath() . '/plugins/viewport/viewportchecker.js')
    
              //Dashboard  
            ->appendFile($this->basePath() . '/plugins/count-to/countto.js')
                
              //page C et D
            ->appendFile($this->basePath() . '/plugins/datatables/js/jquery.dataTables.js')    
            ->appendFile($this->basePath() . '/plugins/datatables/extensions/TableTools/js/dataTables.tableTools.js')
            ->appendFile($this->basePath() . '/plugins/datatables/extensions/Responsive/js/dataTables.responsive.min.js')     
            ->appendFile($this->basePath() . '/plugins/datatables/extensions/Responsive/bootstrap/3/dataTables.bootstrap.js')
            ->appendFile($this->basePath() . '/js/epc.js')
            ->appendFile($this->basePath() . '/js/admin.js')
                
        ;if($language == 'fr'){
            $this->headScript()
                ->appendFile($this->basePath() . '/plugins/datepicker/js/datepicker-FR.js')  
                ->appendFile($this->basePath() . '/plugins/select2/select2.min.js')
                ->appendFile($this->basePath() . '/js/scripts-FR.js');

                    
        } else {
            $this->headScript()
                ->appendFile($this->basePath() . '/plugins/datepicker/js/datepicker.js')
                    ->appendFile($this->basePath() . '/plugins/select2/select2.min.js')
                ->appendFile($this->basePath() . '/js/scripts.js');                     
            
        }                
                
            $this->headScript()                   
            ->appendFile($this->basePath() . '/plugins/sparkline-chart/jquery.sparkline.min.js') //Dashboard
            ->appendFile($this->basePath() . '/js/chart-sparkline.js') //Dashboard
            ->appendFile($this->basePath() . '/js/jquery.print.js');

Merci d'avance de vos avis et conseil.

Dernière modification par epcgroupe (12-08-2016 17:06:38)

Hors ligne

 

#2 26-04-2016 13:31:31

JGreco
Modérateur
Date d'inscription: 22-12-2012
Messages: 421

Re: [zf2][Process]Amélioration des temps d'éxécution

Bonjour, personnellement j'utilise assetic qui permet de faire ce que tu as demandé, et de configurer les appels javascript,  par module, de les optimiser, minifier etc..

https://github.com/widmogrod/zf2-assetic-module


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#3 26-04-2016 13:38:29

epcgroupe
Membre
Date d'inscription: 18-01-2016
Messages: 44

Re: [zf2][Process]Amélioration des temps d'éxécution

ok, est-ce simple a mettre en place et à utiliser ?

Hors ligne

 

#4 26-04-2016 13:44:19

JGreco
Modérateur
Date d'inscription: 22-12-2012
Messages: 421

Re: [zf2][Process]Amélioration des temps d'éxécution

Simple ? Non, oui dépends de tes compétences, moi j'ai galéré un petit moment a comprendre certains trucs;

Mais maintenant il est clair que je ne pourrai pas m'en passer vue l'utilité que j'en ai tiré.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#5 26-04-2016 18:14:30

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 609
Site web

Re: [zf2][Process]Amélioration des temps d'éxécution

Bonjour,

Je vois que tu utilises exclusivement headscript, mais il y a aussi un placeholder inlineScript que tu peux utiliser en bas de ton layout, le chargement asynchrone (async) des javascript non bloquants, la minification et concaténation préalable...

Tu peux d'ailleurs ajouter certains JS que dans les views où ils sont requis.

Hors ligne

 

#6 12-08-2016 17:05:04

epcgroupe
Membre
Date d'inscription: 18-01-2016
Messages: 44

Re: [zf2][Process]Amélioration des temps d'éxécution

Bonjour Théocrite,

Peux-tu me présenter un exemple simple pour les deux cas.

Merci

Hors ligne

 

#7 12-08-2016 23:06:00

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 609
Site web

Re: [zf2][Process]Amélioration des temps d'éxécution

En gros il s'agit d'utiliser des placeholder spécialisés. Dans tes vues, tu peux utiliser des choses comme ça :

Code:

[lang=php]<?= $this->headScript()->prependFile($this->basePath() . '/app.min.js'); ?>

Bien entendu on a les headscript, inlineScript, headStyle, en prepend ou append (pour ordonner l'ordre d'affichage).

Pour la minification, concatenation et autre, je passe personnellement par des outils en JS (gulp, grunt ou autre), ou un task runner en php (robo). Une autre solution consiste à laisser ton serveur (apache, nginx) faire la minification/concatenation à l'aide de Google Mod Pagespeed par exemple (plus consommateur).

Je ne sais pas trop quel exemples donner, ce sont juste des aides de vue, lis la doc de head|inline-script|style, mais aussi de l'aide de vue placeholder (dont ceux ci dérivent), et tiens nous au courant si on peut aider.

Hors ligne

 

#8 23-08-2016 10:40:14

Bouks
Membre
Lieu: Paris
Date d'inscription: 31-08-2012
Messages: 241

Re: [zf2][Process]Amélioration des temps d'éxécution

Perso je n'utilise plus headscript, en faveur de inlineScript. C'est d'ailleurs recommandé par Google de mettre ses scripts en bas de page.

Pour des scripts ne concernant qu'une seule ou quelques pages, il faut parfois mieux les inclure à partir de la vue plutôt que du layout.

Penser aussi à utiliser des distributions par CDN (les fichiers peuvent du coup être déjà en cache dans le navigateur du client). Dans les différents CDN, il y a jsDelivr, moins utilisé que ceux de google ou cdnjs par exemple, jsDelivr a cependant un certain atout par rapport aux autres c'est qu'il permet de faire un appel à plusieurs scripts en même temps et il les minimise et concatène automatiquement avant d'envoyer un seul fichier.


22914720

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