recherche
Maisoninterface Webjs tutorieljs-framework-benchmark - variations de la solution idéale au problème mathématique de la vitesse ou pourquoi elle est standard

Salut tout le monde ! J'ai passé 2,5 ans à résoudre le problème de vitesse dans le référentiel js-framework-benchmark, et je ne le regrette pas, car il y a une observation super intéressante que j'ai récemment remarquée.

Fondamentalement, tous les développeurs de frameworks et de bibliothèques ont été confrontés au problème de la vitesse dès les premiers stades du développement Web. C’est l’essentiel, car plus les gens voient rapidement les modifications des données sur l’interface utilisateur, moins ils y passent de temps. Imaginez que si les sites fonctionnaient 10 % plus rapidement, des milliards de personnes pourraient sauver de nombreuses années de vie.

Il fallait faire quelque chose, donc, et peut-être pour d'autres raisons, de nombreux référentiels avec des benchmarks de frameworks et de bibliothèques modernes ont été créés. L'un de ces référentiels est js-framework-benchmark. Il contient presque tous les frameworks et bibliothèques populaires pour créer une interface utilisateur.

La tâche principale est de dessiner un tableau qui dépend des données. Cela semble être une tâche simple, mais en fait, c'est très, très indicatif, car il attire l'attention sur l'essentiel : l'application peut ressembler à n'importe quoi, mais les composants, leur séquence dans le DOM, fonctionnent avec le navigateur et d'autres choses - imiter le comportement d'un site normal. Parce qu'une ligne dans un tableau, un en-tête sur une page - tout cela est en général, juste un élément du général.

Puisque l'application fonctionne normalement avec le code et l'heure comme dépendance (on ne prend pas en compte l'affichage, les couleurs, car on peut dire 0 et 1 sur le fil, donc il n'y a que 2 de telles dépendances), puis au moins 1 composant, au moins un million de composants différemment entrelacés - il n'y a pas de signification particulière, car tout repose sur un seul moteur. Par conséquent, la simplicité ici convient même, car c'est la clarté.

Donc, nous avons une tâche, mais nous devons la résoudre d'une manière ou d'une autre. La programmation est une bonne chose car nous pouvons résoudre un problème mathématique de millions de manières différentes, mais revenons à l’essentiel : l’algorithme idéal de base est le même pour tout le monde. Il s'agit d'un théorème, et quoi et comment est mis en œuvre est une question de goût et de commodité.

Prenons l'interface maintenant, à quoi ressemble-t-elle :

js-framework-benchmark - variations of the ideal solution to the mathematical problem of speed or why it is standard

Test de l'application :

js-framework-benchmark - variations of the ideal solution to the mathematical problem of speed or why it is standard

Quelques résultats :
https://krausest.github.io/js-framework-benchmark/2024/table_chrome_130.0.6723.58.html

Nous avons des résultats pour différentes actions clés avec le tableau qui peuvent se produire lorsque l'état change. Nous pouvons mesurer la vitesse de travail et comparer quel code fonctionne le plus rapidement et lequel le plus lentement. C’est très pratique, car cela crée des règles du jeu équitables pour tous les frameworks et bibliothèques. Mais ce serait bien si seule la vitesse était le problème, mais la norme de la structure elle-même est également fixée, car elle doit être correcte. L'approche des composants, la mise en œuvre clé, l'état et d'autres termes sont inclus dans tout cela. Sans une telle norme, ce n'est tout simplement pas un sujet de travail.

Ainsi, la norme a longtemps été fixée par les créateurs de frameworks et de bibliothèques - elle est évidente et compréhensible pour ceux qui le font. La question est que nous devons maintenant adapter tout cela d'une manière ou d'une autre pour un travail rapide, afin que l'interface utilisateur soit rapidement rendue.

Alors, une bonne idée de rassembler tous les créateurs de frameworks et de bibliothèques "grands" et moins grands, et juste des passionnés qui veulent aussi s'essayer. Tout cela est important car, comme dans le sport, nous avons une communauté et un comité de « dirigeants » où sont publiées différentes solutions aux problèmes. Ce n'est pas une très bonne comparaison en termes de programmation, car ce ne sont que des mathématiques, mais l'idée en elle-même est intéressante, car elle pousse les gens à faire beau et vite et, surtout, c'est correct.

Eh bien, une telle communauté a généré de nombreuses solutions intéressantes ces dernières années qui peuvent être utilisées aujourd'hui par tous les créateurs actuels et futurs. Vous n'avez pas besoin de réinventer la roue, car l'algorithme de base est déjà écrit. Cette compréhension peut faire gagner de nombreuses années.

De nombreux développeurs ont déjà écrit des exemples d'implémentation de code idéal, il est assez facile de se baser sur cela, donc le mieux est que cela ne s'est pas produit avant et c'est arrivé, entre autres, à cause de ce référentiel. Peu importe ce que disent les autres, c'est cool.

Si nous considérons l'algorithme idéal par composants, nous pouvons mettre en évidence - l'algorithme de l'implémentation clé (en utilisant la sous-séquence croissante la plus longue ou une autre variante de celle-ci), le clonage de modèle, la réactivité directement (textContent, addEventListener, classList.add), ou en utilisant le VDOM inutile aujourd'hui, bien qu'en termes de modèles, cela soit nécessaire, ainsi que le travail avec l'état et l'importation entre les composants, les 2 derniers sont discutables. Mais c'est la base, rien d'autre ne peut être inventé ici.

Cet article ne contiendra aucun code en tant que tel, car il y en a beaucoup dans les référentiels de benchmark.

Quoi qu'il en soit, j'espère que les gens comprendront bientôt qu'aujourd'hui nous avons déjà le code idéal pour afficher les données, cela vaut juste la peine d'en tenir compte et de faire quelque chose de nouveau à partir de celui-ci, sans réinventer la roue. De nombreuses bibliothèques et frameworks peuvent aujourd'hui fonctionner beaucoup plus rapidement et beaucoup plus efficacement, c'est juste que le code existant ne le permet pas, car il peut y avoir beaucoup de travail et ce n'est pas un fait que cela soit généralement possible sans tout refaire.

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
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
Comprendre le moteur JavaScript: détails de l'implémentationComprendre le moteur JavaScript: détails de l'implémentationApr 17, 2025 am 12:05 AM

Comprendre le fonctionnement du moteur JavaScript en interne est important pour les développeurs car il aide à écrire du code plus efficace et à comprendre les goulots d'étranglement des performances et les stratégies d'optimisation. 1) Le flux de travail du moteur comprend trois étapes: analyse, compilation et exécution; 2) Pendant le processus d'exécution, le moteur effectuera une optimisation dynamique, comme le cache en ligne et les classes cachées; 3) Les meilleures pratiques comprennent l'évitement des variables globales, l'optimisation des boucles, l'utilisation de const et de locations et d'éviter une utilisation excessive des fermetures.

Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisationPython vs JavaScript: la courbe d'apprentissage et la facilité d'utilisationApr 16, 2025 am 12:12 AM

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Python vs JavaScript: communauté, bibliothèques et ressourcesPython vs JavaScript: communauté, bibliothèques et ressourcesApr 15, 2025 am 12:16 AM

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

De C / C à JavaScript: comment tout cela fonctionneDe C / C à JavaScript: comment tout cela fonctionneApr 14, 2025 am 12:05 AM

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

Moteurs JavaScript: comparaison des implémentationsMoteurs JavaScript: comparaison des implémentationsApr 13, 2025 am 12:05 AM

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

Au-delà du navigateur: Javascript dans le monde réelAu-delà du navigateur: Javascript dans le monde réelApr 12, 2025 am 12:06 AM

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

Construire une application SaaS multi-locataire avec next.js (intégration backend)Construire une application SaaS multi-locataire avec next.js (intégration backend)Apr 11, 2025 am 08:23 AM

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft