Maison interface Web js tutoriel Comment les nouveaux concepts de JSSugar et JSre peuvent ralentir les sites Web

Comment les nouveaux concepts de JSSugar et JSre peuvent ralentir les sites Web

Jan 04, 2025 pm 07:45 PM

Bonjour à tous ! Aujourd'hui, j'aimerais partager mes réflexions sur le sujet de JS0 et JSSugar, dont on parle beaucoup. À mon avis, il y a là un certain danger, potentiellement caché pour des milliards d’utilisateurs de sites Web. Maintenant, je vais essayer d'expliquer ce que je veux dire.

Vous n'aimerez peut-être pas mon point de vue, s'il vous plaît, il y a des commentaires sur dev.to, je vais essayer de répondre à tout.

Description du concept JS0 et de JSSugar d'après ma compréhension

Peut-être que j'ai mal compris quelque chose ou fait une erreur quelque part, mais je vais vous expliquer du mieux que je peux.

En bref, aujourd'hui en javascript, au lieu d'étendre la fonctionnalité avec de plus en plus de fonctions, nous devons nous concentrer sur la rendre plus acceptable pour l'utilisateur. Par exemple, aujourd'hui, tous les développeurs écrivent du code qui passe par TypeScript, Webpack et un tas d'autres couches, alors pourquoi ne pas appliquer cette logique de simplification, lorsque le développeur écrit moins de code, dans les futures versions d'ecmascript. Par exemple, définir une telle vision comme standard, selon laquelle nous devons créer des fonctions (forEach par exemple) tout comme lodash ou jQuery, et ne pas étendre, car c'est déjà compliqué.

Par exemple, il y a JS0, ce sera pour cet environnement où tout est compilé, et laissera les développeurs ordinaires utiliser forEach au lieu de for, sous condition.

C’est donc ici que se pose le sérieux problème de cette approche. Il semble qu'il soit écrit que "pas pour des raisons de vitesse", mais en fait, tous ceux qui ont déjà comparé la vitesse du code JavaScript dans des benchmarks comprennent à quoi je veux en venir.

Implémentation lente pour la micro-optimisation de la quantité de code

Oui, il est maintenant temps de passer à la pratique :

Code #1

const a = [1,2,3,4,5]
a.forEach((e)=>{
  if(e === 4){
    console.log(e)
  }
})
Copier après la connexion

Code #2

const a = [1,2,3,4,5]
for (let index = 0; index < a.length; index++) {
  const e = a[index];
  if(e === 4){
    console.log(e)
  }
}
Copier après la connexion

Résultat :

How the new concepts of JSSugar and JSre able to slow down websites

Prenons maintenant un autre exemple :

Code #1

const a = [1,2,3,4,5];
const b =  a.map((e)=>{
  return e + 1;
})
Copier après la connexion

Code #2

const a = [1,2,3,4,5]
const b = [];
for (let index = 0; index < a.length; index++) {
  const e = a[index];
  b.push(e + 1)
}
Copier après la connexion

Résultat :

How the new concepts of JSSugar and JSre able to slow down websites

Les résultats sont basés sur les données du site https://jsbenchmark.com.

Donc, ce que je veux dire, c'est que si l'on imagine que du TC39 (Comité Technique) et de la communauté des développeurs en général, le principal vecteur de suggestion d'idées ira dans une telle direction, lorsque nous créerons des fonctions lodash et jQuery , et cela deviendra un standard dans ECMAScript, alors il y aura des fonctions comme forEach, qui ne changent pas la vitesse, mais ralentissent en fait l'application. Bien sûr, cela mérite réflexion.

Ici, même dans la diapositive officielle (l'oiseau s'est envolé), il est indiqué où le vecteur doit se déplacer et c'est vrai, pour la commodité des utilisateurs.

How the new concepts of JSSugar and JSre able to slow down websites

Et il est pratique pour les utilisateurs d'utiliser un site rapide, et non en retard, mais pour les développeurs "plus expressifs".

J'aimerais donc que, lorsque cela devient soudainement un standard, de telles fonctions ne soient pas au premier plan. SOLID, DRY et d'autres principes ralentissent déjà les applications modernes, et maintenant ils en font une norme.

Impact de js-framework-benchmark

Cet article a bien sûr été inspiré par mon expérience de travail avec le référentiel js-framework-benchmark, qui, à mon avis, montre très clairement pourquoi la vitesse est importante aujourd'hui. En fait, les gens veulent que les sites Web se chargent plus rapidement – ​​c’est un fait. Aujourd’hui, la plupart des frameworks et bibliothèques populaires modernes sont en fait lents. Il peut même sembler à quelqu'un que la vitesse est de la merde, mais ce n'est pas le cas. Si vous mettez tout ensemble, alors avec de telles "optimisations", les applications Web fonctionneront plusieurs fois moins bien. Par conséquent, je pense que quelque chose comme ça.

Conclusion

C'est cool que des idées comme celles-ci sortent aujourd'hui. Ils font avancer JavaScript et toute la programmation Web, mais il y a des choses objectives comme la vitesse qui ne devraient pas non plus être ignorées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Remplacer les caractères de chaîne en javascript Remplacer les caractères de chaîne en javascript Mar 11, 2025 am 12:07 AM

Remplacer les caractères de chaîne en javascript

jQuery Vérifiez si la date est valide jQuery Vérifiez si la date est valide Mar 01, 2025 am 08:51 AM

jQuery Vérifiez si la date est valide

jQuery obtient un rembourrage / marge d'élément jQuery obtient un rembourrage / marge d'élément Mar 01, 2025 am 08:53 AM

jQuery obtient un rembourrage / marge d'élément

10 vaut la peine de vérifier les plugins jQuery 10 vaut la peine de vérifier les plugins jQuery Mar 01, 2025 am 01:29 AM

10 vaut la peine de vérifier les plugins jQuery

10 onglets jQuery Accordion 10 onglets jQuery Accordion Mar 01, 2025 am 01:34 AM

10 onglets jQuery Accordion

Http débogage avec le nœud et le http-console Http débogage avec le nœud et le http-console Mar 01, 2025 am 01:37 AM

Http débogage avec le nœud et le http-console

Tutoriel de configuration de l'API de recherche Google personnalisé Tutoriel de configuration de l'API de recherche Google personnalisé Mar 04, 2025 am 01:06 AM

Tutoriel de configuration de l'API de recherche Google personnalisé

jQuery Ajouter une barre de défilement à div jQuery Ajouter une barre de défilement à div Mar 01, 2025 am 01:30 AM

jQuery Ajouter une barre de défilement à div

See all articles