|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Lycéen Inscription : mars 2009 Messages : 201 ![]() |
Bonjour,
je reste perplexe sur l'utilisation du with, est-ce que cela vaut vraiment le coup de l'utilisé losrque l'on modifie pas mal de valeur d'un objet ? Mais surtout le temps d’exécution n'est-il pas plus de long ? (en micro )merci d'avance de vos commentaires ! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
J'aime bien la concision que ça génère (forcément
mais il faut être assez sûr de son coup pour en tirer parti; tiens, petit condensé de sagesse: https://developer.mozilla.org/fr/R%c...tructions/with |
|
|
10
|
|
|
#3 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Personnellement, je n'utilise jamais with. L'intérêt me semble limité, notamment pour les raisons évoquées dans le lien proposé par JT.
Concernant les performances, j'ai toujours été persuadé qu'effectivement, with était moins optimisé, ce que me confirme un petit test rapide : Code html :
with.png et est confirmé sur tous les navigateurs (IE9, Opera, Chrome et Safari) avec des écarts plus ou moins importants, mais toujours significatifs, de mémoire, jamais moins de 3x plus lent pour with.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
10
|
|
|
#4 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
moralité, ne pas employer with dans une boucle...
|
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Bonjour,
Je n'ai jamais compris les arguments de concision et de lisibilité concernant 'with', puisque l'utilisation d'une variable intermédiaire me semble apporter le même résultat, sans en avoir les inconvénients. Je m'explique : La lecture n'est en rien simplifiée, comme le montre l'exemple donné dans le lien ci-dessus. Au contraire, on distingue même moins clairement la portée des éléments utilisés. La concision ne m'a jamais paru essentielle, surtout qu'elle vient le plus souvent à l'encontre de la lisibilité. ![]() Dans le cas où on cherche à écrire le moins de code possible, autant utiliser un éditeur qui fait l'auto-complétion des symboles existant déjà dans le fichier. Le code résultant sera toujours lisible, et on se sera moins fatigué !(quoique ctrl+espace ou fleche bas... pffff !!) Et si le poids du fichier résultant prends une importance pour un script utilisé en production, on a toujours la possibilité d'activer une compression gzip et/ou de compresser le javascript (certains diront obfusquer) avant de l'envoyer au client. Pour finir, même si le petit test de Bovino l'illustre tout à fait, il est assez évident que les performances seront moins bonnes puisque l'utilisation de with provoque systématiquement une phase de recherche supplémentaire. La complexité résultante est donc forcément plus élevée, puisqu'on augmente inutilement le nombre d'opération élémentaire. Je n'ai jamais compris (et c'est valable pour tout language) cette recherche de l'expression la plus concise possible (en terme de caractères écrits) surtout si est au détriment des performances ou de la lisibilité. Voilà pour mon avis ! |
|
|
20
|
|
|
#6 |
|
Membre régulier
![]() Lycéen Inscription : mars 2009 Messages : 201 ![]() |
Wow que de reponse ^^ :3
Merci pour vos avis, mais alors cette fonction du noyau javascript ne serait pas a refaire ? |
|
|
00
|
|
|
#7 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
![]()
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#8 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
Le problème, c'est que tu ne peux pas maîtriser le navigateur utilisé par l'utilisateur et que ça force JavaScript à être retrocompatible, donc supprimer des fonctionnalités pourrait amener des sites anciens à ne plus fonctionner.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Lycéen Inscription : mars 2009 Messages : 201 ![]() |
okay,
donc l'utilisation est a exclure ? Quan est-ce qu'il mettrons a jour le noyau javascript d’après vous ?
|
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
petit exemple des seuls cas où j'utilise with
Code :
ps: pour document.write, c'est effectivement une aberration; pour eval, mon avis est extrêmement réservé: sa puissance contrôlée est fabuleuse (et encore, je n'ai jamais été très loin dans ce sens);
__________________
On ne mord pas, on manifeste seulement notre tristesse face à des exposés de situations qui défient notre entendement binaire. |
||
|
|
00
|
|
|
#11 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 019 ![]() |
J'abonde dans le sens de JT...
Je n'utilise jamais with en js, mais je comprends son utilisation dans le contexte objet pour la lisibilité du code (factorisation), mais les tests que j'ai pu effectuer sur le with ne m'ont pas convaincu quand à son utilité en gain de vitesse d'execution
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Lycéen Inscription : mars 2009 Messages : 201 ![]() |
Oui donc a choisir autant gagner en vitesse qu'en visibilité, enfin un code sans with est toujours lisible ou du moins il n'est pas incompréhensible donc autant gagné en vitesse lors de l’exécution de la page
|
|
|
00
|
|
|
#13 | |||
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Citation:
Code :
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|||
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Matilin TorreÉtudiant Inscription : juin 2010 Messages : 679 ![]() |
Grlgxq !… J'ai besoin d'une greffe du cœur de toute urgence.
C'est marrant parce qu'avant de lire cette discussion j'avais des a priori négatifs sur with, mais sans raison concrète. Maitenant j'en ai ^^ Mais je comprends à moitié pourquoi il existe. Disons que JS est un langage tolérant – c'est à la fois sa force et sa faiblesse – et with est d'un confort assez extraordinaire quand on ne recherche pas la performance du code.
__________________
Disposition de clavier ergonomique française : Bépo |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Encore plus marrant quand on les cumule
![]() Code :
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
||
|
|
00
|
|
|
#16 |
![]() ![]() ![]() Inscription : mars 2008 Messages : 2 686 ![]() |
Romain, si après ça tu n'as pas assez de matière pour terminer tes jeux, que devons-nous faire ?
|
|
|
00
|
|
|
#17 | |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Citation:
Mais promis je vais trouver le temps, c'est vrai que ça fait longtemps que ça me démange... ^^'
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
|
00
|
|
|
#18 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
La concision du code peut devenir un paramètre important dans certains cas. Si le site en question reçoit énormément de requêtes par secondes, par exemple, il vaut mieux rendre le code le plus court possible, et with est une astuce comme une autre pour cela.
Les pertes de vitesse d'exécution engendrées sont insignifiantes au regard de la puissance des ordinateurs d'aujourd'hui. Moralité, je pense qu'il vaut mieux gagner en performance dans le traitement des requêtes serveur que dans la vitesse d'exécution du code. Sauf dans des cas très très particulier, je pense que la perte est plus grande dans le premier cas. |
|
|
00
|
|
|
#19 | |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
Citation:
|
|
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
petit défi pour ceux que ça passionne (et il y en a visiblement
Vous avez 4 heures |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com