


Comment éviter la duplication du code: pratique d'optimisation de la page Web JavaScript
Cet article vise à résoudre le problème de la duplication du code en raison de la sélection des sujets dans le développement Web JavaScript Q&A. En adoptant les opérateurs ternaires et l'encapsulation des fonctions, nous montrerons comment rationaliser le code, améliorer la maintenabilité et fournir une architecture plus flexible pour les extensions ultérieures. Le noyau consiste à déterminer dynamiquement la source de données et les sélections, évitant ainsi d'écrire des blocs de code similaires pour chaque sujet.
Les dangers et les solutions de duplication de code
Lors du développement d'une page Web de questions / réponses, il est un problème courant d'écrire à plusieurs reprises à plusieurs reprises le même code pour différents sujets (tels que la biologie, la chimie, la physique). Cette approche augmente non seulement la quantité de code et réduit la lisibilité, mais rend également les erreurs sujettes à la maintenance et aux extensions ultérieures. Lorsque vous devez ajouter de nouveaux sujets ou modifier la logique existante, plusieurs codes doivent être modifiés, ce qui augmente les coûts de maintenance et les risques.
Le cœur de la résolution de ce problème est de résumer la logique répétitive et de lui permettre d'ajuster dynamiquement le comportement en fonction de différents sujets. Les méthodes courantes comprennent:
- Utilisez les opérateurs ternaires: sélectionnez dynamiquement les sources de données (par exemple, les tableaux de questions) et les cours sélectionnés en fonction des sujets.
- Encapsulation de la fonction: encapsule les blocs de code en double dans les fonctions et implémentez différents comportements en passant par des paramètres.
- Axé sur les données: Stockez des sujets, des cours et des données de problème dans une structure de données unifiée pour stimuler le comportement de la page via la configuration.
Implémentation de code optimisée
Le code suivant montre comment utiliser les opérateurs ternaires pour simplifier la logique de sélection des sujets, réduisant ainsi la duplication de code.
$ (document) .ready (function () { $ ('. go-btn'). sur ('click', function () { var array = ($ ('# mytopic'). val () == 'biology'? biologyq: ($ ('# mytopic'). val () == 'chimie'? Chemistryq: Physicsq)); const le courslected = ($ ('# mytopic'). val () == 'biology'? $ ('# mybiology'). val (): ($ ('# mytopic'). val () == 'chimie'? $ ('# myChemistry'). Val (): $ ('# myphysics'). var lesonResult = $ .Grep (array, function (e) {return e.lesson == leseNesed;}); { const Array = LesonResult; fonction shuffle (array) { for (Laisse i = array.length - 1; i> 0; i--) { Soit j = math.floor (math.random () * (i 1)); Soit temp = array [i]; array [i] = array [j]; Array [j] = temp; } Tableau de retour; }; const result = shuffle (array); $ ('# q1'). html (résultat [0] .Quertion); $ ('# q2'). html (résultat [1]. $ ('# q3'). html (résultat [2] .Quittion); var currentVal = $ ('# myNumber'). Val (); $ ('. Selected'). Hide (). Slice (0, CurrentVal) .show (); } }); });
Le cœur de ce code est les deux lignes suivantes:
var array = ($ ('# mytopic'). val () == 'biology'? biologyq: ($ ('# mytopic'). val () == 'chimie'? Chemistryq: Physicsq)); const le courslected = ($ ('# mytopic'). val () == 'biology'? $ ('# mybiology'). val (): ($ ('# mytopic'). val () == 'chimie'? $ ('# myChemistry'). Val (): $ ('# myphysics').
Ici, l'opérateur ternaire est utilisé pour sélectionner dynamiquement la source de données correspondante (BiologyQ, ChemistryQ, PhysicsQ) et le sélecteur de cours (#Mybiology, #MyChemistry, #Myphysics) basé sur le sujet sélectionné par l'utilisateur. De cette façon, la structure if ... else if ... else qui devait à l'origine être écrite pour chaque sujet est simplifiée en une seule ligne de code, améliorant considérablement la lisibilité et la maintenabilité du code.
Optimisation supplémentaire: encapsulation de la fonction
Bien que l'utilisation des opérateurs ternaires puisse simplifier le code, l'enveloppe du code dans une fonction est plus efficace si la logique est plus complexe, ou si la même logique doit être réutilisée à plusieurs endroits.
Par exemple, la logique d'obtenir le tableau de problèmes et le sélecteur de cours basé sur le sujet peut être encapsulé en une fonction:
fonction getTopicData (thème) { commutateur (sujet) { Cas «biologie»: return {array: biologyq, leseNelector: '#mybiology'}; Cas «chimie»: return {Array: ChemistryQ, leseNelector: '#mychemistry'}; Cas «physique»: return {array: Physicsq, leseNelector: '#myphysics'}; défaut: return {array: [], leseNelector: ''}; } }
Ensuite, utilisez cette fonction dans le gestionnaire d'événements:
$ (document) .ready (function () { $ ('. go-btn'). sur ('click', function () { const topic = $ ('# mytopic'). val (); const topicdata = getTopicData (sujet); var array = topicData.array; const le moins élu = $ (topicData.lessonselector) .Val (); var lesonResult = $ .Grep (array, function (e) {return e.lesson == leseNesed;}); { const Array = LesonResult; fonction shuffle (array) { for (Laisse i = array.length - 1; i> 0; i--) { Soit j = math.floor (math.random () * (i 1)); Soit temp = array [i]; array [i] = array [j]; array [i] = array [j]; Array [j] = temp; } Tableau de retour; }; const result = shuffle (array); $ ('# q1'). html (résultat [0] .Quertion); $ ('# q2'). html (résultat [1]. $ ('# q3'). html (résultat [2] .Quittion); var currentVal = $ ('# myNumber'). Val (); $ ('. Selected'). Hide (). Slice (0, CurrentVal) .show (); } }); });
Résumé et précautions
En utilisant les opérateurs ternaires et l'encapsulation des fonctions, nous pouvons réduire efficacement la duplication du code dans le développement Web JavaScript et améliorer la lisibilité au code et la maintenabilité.
Notes:
- Lors du choix d'utiliser des opérateurs ternaires ou de l'encapsulation des fonctions, les compromis doivent être effectués en fonction des conditions réelles. Si la logique est relativement simple, vous pouvez utiliser des opérateurs ternaires; Si la logique est relativement complexe ou doit être réutilisée à plusieurs endroits, vous devez utiliser l'encapsulation de la fonction.
- Lors de la conception de structures de données, vous devez essayer de maintenir l'uniformité pour faciliter l'expansion et la maintenance ultérieures.
- Lorsque vous rédigez du code, vous devez prêter attention à la lisibilité du code et ajouter des commentaires appropriés pour faciliter les autres pour comprendre et maintenir le code.
En suivant ces principes, nous pouvons écrire du code JavaScript de haute qualité et facile à maintenir, ce qui peut améliorer l'efficacité du développement et réduire les coûts de maintenance.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Pour commencer rapidement avec HTML, il vous suffit de maîtriser quelques balises de base pour créer un squelette Web. 1. La structure de la page est essentielle et, qui est l'élément racine, contient des méta-informations et est la zone d'affichage du contenu. 2. Utilisez le titre. Plus le niveau est élevé, plus le nombre est petit. Utilisez des balises pour segmenter le texte pour éviter de sauter le niveau. 3. Le lien utilise des balises et correspond aux attributs HREF, et l'image utilise des balises et contient des attributs SRC et Alt. 4. La liste est divisée en listes non ordonnées et listes commandées. Chaque entrée est représentée et doit être imbriquée dans la liste. 5. Les débutants n'ont pas à forcer la mémorisation de toutes les balises. Il est plus efficace de les écrire et de les vérifier pendant que vous écrivez. Maître la structure, le texte, les liens, les images et les listes pour créer des pages Web de base.

Shadowdom est une technologie utilisée dans la technologie des composants Web pour créer des sous-arbres DOM isolés. 1. Il permet la monture d'une structure DOM indépendante sur les éléments HTML ordinaires, avec ses propres styles et comportements, et n'affecte pas le document principal; 2. Créé via JavaScript, comme l'utilisation de la méthode attachshadow et la définition du mode à ouvrir; 3. Lorsqu'il est utilisé en combinaison avec HTML, il a trois caractéristiques principales: la structure claire, l'isolement de style et la projection de contenu (fente); 4. Les notes incluent le débogage complexe, le contrôle de la portée du style, les frais généraux de performances et les problèmes de compatibilité du cadre. En bref, Shadowdom fournit des capacités d'encapsulation natives pour construire des composants d'interface utilisateur réutilisables et non polluants.

ThenameattributeinaninputTagisUsesedToentifyyInput whentheformmissubmited; itSasaTheKeyInTheKey-ValuepairsentTotheServer, WhereTheUser'sinputisthevalue.1.Wenaformmissubmited, thereAmatTrributeBeCheseke

❌oucannotnesttagssisideanothertagbecauseit’sinvalidhtml; browsersautomatiquematethethefirstbeforeOpiningtheenxt, résultant de laparateParagraphs.

L'utilisation de balises est la méthode la plus simple et recommandée. La syntaxe convient aux navigateurs modernes pour intégrer directement le PDF; 2. L'utilisation de balises peut fournir une meilleure prise en charge du contenu de contrôle et de sauvegarde, la syntaxe est, et fournit des liens de téléchargement dans les balises sous forme de solutions de sauvegarde lorsqu'elles ne sont pas prises en charge; 3. Il peut être intégré via Google Docsviewer, mais il n'est pas recommandé d'utiliser largement en raison de problèmes de confidentialité et de performances; 4. Afin d'améliorer l'expérience utilisateur, les hauteurs appropriées doivent être définies, des tailles réactives (telles que la hauteur: 80VH) et les liens de téléchargement PDF doivent être fournis afin que les utilisateurs puissent les télécharger et les visualiser eux-mêmes.

La méthode de placement de style doit être sélectionnée selon la scène. 1. En ligne convient à la modification temporaire des éléments uniques ou du contrôle JS dynamique, tels que la couleur du bouton change avec le fonctionnement; 2. CSS interne convient aux projets avec quelques pages et une structure simple, ce qui est pratique pour la gestion centralisée des styles, tels que les paramètres de style de base des pages de connexion; 3. La priorité est donnée à la réutilisation, à la maintenance et aux performances, et il est préférable de diviser les fichiers CSS de liaison externe pour les grands projets.

Pour créer une liste HTML non ordonnée, vous devez utiliser une balise pour définir un conteneur de liste. Chaque élément de liste est enveloppé d'une balise et le navigateur ajoutera automatiquement des balles; 1. Créez une liste avec une balise; 2. Chaque élément de liste est défini avec une balise; 3. Le navigateur génère automatiquement des symboles de points par défaut; 4. Les sublilistes peuvent être mis en œuvre par le biais de la nidification; 5. Utilisez l'attribut de type de style liste de CSS pour modifier le style de symbole, tel que le disque, le cercle, le carré ou aucun; Utilisez ces balises correctement pour générer une liste standard non ordonnée.

THECONTANTITABLEATTRIBUTEMAKESANYHTMLEMÉMÉRITÉBYADDING CONTANTITALLE = "VRUE", permettant à la réception de codomente detteurthebrowser.
