Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2385 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Optimisation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Optimisation

n°2254707
psychodark​squall
VégétAryen
Posté le 01-04-2015 à 15:02:54  profilanswer
 

Bonjour,
 
 
Je cherche à optimiser du code Javascript qui a été commencé par un développeur, puis est passé de mains en mains, pour finir entre les miennes. Je suppose donc qu'il est très perfectible.
 
1) Vaut-il mieux stocker la référence d'un élément HTML dans une variable et utiliser cette variable, ou peut-on rechercher cet élément à chaque fois qu'on a besoin de le manipuler ?
 
2) Quelle taille doit faire un fichier JS ? Et d'ailleurs cette notion de taille est-elle importante alors que je vois un peu partout qu'il est préférable de réunir plusieurs JS pour limiter les requêtes (et donc augmenter la taille de l'unique JS) ? J'ai deux ou trois fichiers qui montent à 3000 lignes et une dizaine d'autres qui varient entre 5 et 800 lignes chacun.
 
 
Merci.

mood
Publicité
Posté le 01-04-2015 à 15:02:54  profilanswer
 

n°2254709
Devil'sTig​er
Posté le 01-04-2015 à 15:17:41  profilanswer
 

1) Stocker bien sur, la recherche sur le DOM est très lente.
 
2) La taille à une importance relativement faible, pour gagner en place, sur la production, tu peux compresser en faisant appel par exemple à uglifyjs. Ca permet de transférer moins d'octet (donc chargement de la page plus rapide), et la performance reste a peu près au même niveau (c'est souvent négligeable comme différence).
 
3) Si tu souhaites vraiment aller au bout de choses, sache qu'un langage interprété est performant... Lorsqu'il se comporte comme un language compilé.
En particulier, lorsque les variables ne changent pas de type, le retour des fonctions non plus, c'est dans ces cas là que la performance sera maximale.
 
4) Tu peux faire un tour du côté des profilers (celui de chrome, de firefox) pour voir un bout de code "en live" ce qu'il donne, quelles fonctions sont a optimisées au non.
 
 
Have fun.

n°2254712
flo850
moi je
Posté le 01-04-2015 à 15:21:20  profilanswer
 

la recherche par id est a peut prêt gratuite. le reste va de couteux a très couteux,.Dans tous les cas, il vaut mieux stocker.
 
Pour le dev: des fichiers courts, avec des rôles précis simplifient les choses.Pour la prod, un seul js limite les requêtes et optimise la cmopression. Des outils existent pour passer de l'un à l'autre


---------------

n°2254719
psychodark​squall
VégétAryen
Posté le 01-04-2015 à 15:37:14  profilanswer
 

Merci pour ces infos. En fait le site est blindé de web services parce que c'est le front-end d'un logiciel plus important tournant sur nos propres serveurs.
 
Il n'y a jamais eu de problèmes de lenteur ou autres, mais certains utilisateurs commencent à l'utiliser en 4G avec des ordis portables (il est normalement fait pour être utilisé en bureautique uniquement, il est même pas responsive).
 
Et apparemment ils ont des déconnexions aléatoires au chargement de la page ou lors d'appels à des web services (uniquement les utilisateurs 4G). Les erreurs concernent toujours un des fichiers JS.

n°2254721
flo850
moi je
Posté le 01-04-2015 à 15:46:50  profilanswer
 

Alors tu les assembles, tu les minifie ( virer les espace, renommer les variables) avec un truc genre uglifyjs2
Tu paramètre ton serveur web pour obliger les navigateurs a le mettre en cache+ compression gzip au maxi


---------------

n°2254883
psychodark​squall
VégétAryen
Posté le 03-04-2015 à 10:40:36  profilanswer
 

OK merci, je pense que je vais devoir un peu refondre le truc :D

n°2254913
flo850
moi je
Posté le 03-04-2015 à 20:13:03  profilanswer
 

En 1/ force la mise en cache : c'est un paramétrage de ton serveur , facile a mettre en place si tu as la main dessus


---------------

n°2254917
psychodark​squall
VégétAryen
Posté le 03-04-2015 à 20:44:41  profilanswer
 

OK je ferai ça en priorité, merci.

n°2254932
flo850
moi je
Posté le 04-04-2015 à 00:10:12  profilanswer
 

Attention , la contrepartie est que le jour ou tu mets  àjours tes fichiers js, il peut y avoir quelques soucis pour etre sur que la mise à jour descende
 
regarde du côté des etags


---------------

n°2254988
gatsu35
Blablaté par Harko
Posté le 04-04-2015 à 22:53:55  profilanswer
 

flo850 a écrit :

Attention , la contrepartie est que le jour ou tu mets  àjours tes fichiers js, il peut y avoir quelques soucis pour etre sur que la mise à jour descende
 
regarde du côté des etags


Faut que les JS descendent les étages  :??:

mood
Publicité
Posté le 04-04-2015 à 22:53:55  profilanswer
 

n°2255132
psychodark​squall
VégétAryen
Posté le 07-04-2015 à 11:53:57  profilanswer
 

gatsu35 a écrit :


Faut que les JS descendent les étages  :??:


 
[:baragor]

n°2255181
psychodark​squall
VégétAryen
Posté le 07-04-2015 à 16:51:28  profilanswer
 

Sinon j'ai vu que les fichiers js étaient inclus de cette manière dans le HTML :
 

Code :
  1. <script type="text/javascript" src="/js/md5.js?version=120114"></script>


 
Le rajout ?version=120114, qui évidemment ne figure pas dans le nom du fichier, sert à quoi exactement ? C'est pas une histoire d'expiration de cache ?
 
Merci.


Message édité par psychodarksquall le 07-04-2015 à 16:52:07
n°2255212
Devil'sTig​er
Posté le 08-04-2015 à 05:27:50  profilanswer
 

On peut récup ce paramètre, mais effectivement la large majorité des cas c'est pour invalider le cache (surtout des users une fois le passage en prod).

n°2255226
psychodark​squall
VégétAryen
Posté le 08-04-2015 à 09:39:41  profilanswer
 

Mais y a un traitement autre que simplement rajouter cette extension ? Ou c'est automatiquement géré par les navigateurs ? Et donc on met la date de la dernière modif ?

n°2255233
mechkurt
Posté le 08-04-2015 à 10:09:34  profilanswer
 

Tu incrémentes comme tu veux, pour le navigateur il voit ça comme un autre fichier donc il le ré-telecharges (ça marche aussi pour les imegs, les css, etc.).
 
Tu peux faire un ?nocache=<?=filemtime($path_vers_ton_fichier)?> mais comme tous les accès disques sont un peu couteux en terme de perf, si tu peux incrémenter à la main a chaque modif du fichier, c'est mieux...


---------------
D3
n°2255237
psychodark​squall
VégétAryen
Posté le 08-04-2015 à 10:20:28  profilanswer
 

Ah oui OK ça sert juste à changer le nom du fichier pour qu'il le retélécharge. Merci.
 
PS : je suis pas en PHP :cry:


Message édité par psychodarksquall le 08-04-2015 à 10:21:35
n°2255280
flo850
moi je
Posté le 08-04-2015 à 14:43:17  profilanswer
 

Tu fais gérer ça par le serveur http://fr.wikipedia.org/wiki/Balis [...] _ETag_HTTP


---------------


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Optimisation

 

Sujets relatifs
VBA - optimisation de portefeuille[RESOLU] [VBA] - EXCEL 2010 - Optimisation de code
Recherche betatesteur pour logiciel d'optimisation PHP/MySQLOptimisation des plus proche voisins
Optimisation de tableau de fonctionsoptimisation requete fgets
Optimisation lecture fichier texteOptimisation recherche doublons
SQL Loader : Optimisation de chargement et commit[VB6] Simplification et optimisation code
Plus de sujets relatifs à : Optimisation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR