Maison interface Web Tutoriel H5 Une introduction à quelques détails qui peuvent être optimisés en HTML5

Une introduction à quelques détails qui peuvent être optimisés en HTML5

Oct 29, 2018 pm 04:20 PM
css html html5 javascript

Ce que cet article vous apporte est une introduction à certains détails qui peuvent être optimisés en HTML5. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Présentation de quelques détails d'optimisation récemment organisés. Je ne parlerai pas de compression d’image, c’est ce que doit faire l’optimisation. Aujourd'hui, je vais parler des détails de l'optimisation que tout le monde peut cultiver lors de l'écriture de code.

  • N'abusez pas du flotteur. N'abusez pas des polices Web.

Float nécessite une grande quantité de calculs lors du rendu, et va sortir du standard et s'effondrer. Nous pouvons utiliser une mise en page flexible à la place. L’introduction des polices Web demande beaucoup d’efforts, il est donc préférable d’en parler au concepteur et pas trop.

  • Évitez les paramètres de style redondants en CSS.

La couleur, la police, la hauteur de ligne, etc. peuvent toutes être héritées, donc leurs éléments enfants doivent être écrits à plusieurs reprises s'ils ont les mêmes attributs, en particulier font-family.

  • Une méthode complexe qui peut mettre en cache la valeur de retour d'une fonction.

function cached (fn) {
    var cache = Object.create(null);
    return (function cachedFn (str) {
        var hit = cache[str];
        return hit || (cache[str] = fn(str))
    })
};
var fk = function (str) {
  return str.charAt(0).toUpperCase() + str.slice(1)
}
var cacheFk = cached(fk)
// 1 step
cacheFk('ui') 
//2 step
cacheFk('ui')
Copier après la connexion

C'est un morceau de code que j'ai trouvé en regardant le code source de vue. Sa fonction est de mettre en cache la valeur d'une fonction complexe et d'éviter les calculs répétés si la. les paramètres sont les mêmes. Mais ce qu'il faut noter ici, c'est que cette fonction de mise en cache s'effectue via des fermetures, il y a donc quelques compromis à faire.

  • Réduisez la mise en page autant que possible.

// 触发两次 layout
var newWidth = p.offsetWidth + 50;
p.style.width = newWidth + 'px';
var newHeight = p.offsetHeight + 50;
p.style.height = newHeight + 'px';

// 只触发一次 layout
var newWidth = p.offsetWidth + 50;
var newHeight = p.offsetHeight + 50;
p.style.width = newWidth + 'px';
p.style.height = newHeight + 'px';
Copier après la connexion

Toutes les opérations pouvant déclencher la mise en page seront temporairement mises dans la file d'attente de mise en page. Lorsqu'elle devra être mise à jour, les résultats de toutes les opérations dans toute la file d'attente seront calculés. De cette façon, la mise en page ne peut être effectuée qu'une seule fois pour améliorer les performances.

Les éléments d'animation sont préférables hors AMM et n'affectent pas les autres modules. Ceci est également fait afin de ne pas affecter d'autres éléments.

  • la transformation remplace la position.

Pour réaliser certains effets de déplacement CSS, il est préférable d'utiliser la transformation au lieu du positionnement. Quand j'ai commencé, j'ai utilisé position pour créer des cartes d'animation ~~~

  • Sélectionnez l'élément dom et utilisez l'identifiant, mais ne définissez pas l'identifiant pour définir le CSS.

Si vous utilisez le sélecteur d'identifiant, n'ajoutez pas d'autres contraintes de classe. Définir trop d'identifiants réduira la réutilisabilité et rendra la maintenance plus difficile, il n'est donc pas recommandé d'utiliser plusieurs identifiants en CSS.

  • Lorsque vous utilisez la longueur plusieurs fois, utilisez une variable pour la sauvegarder.

var len = dom.length;
for(var i = 0;i < len;i++){};
Copier après la connexion

L'avantage est que vous n'avez pas besoin de calculer la longueur du dom à chaque fois que vous faites une boucle.

  • requestAnimationFrame remplace setTimeout

var start = null;
var element = document.getElementById(&#39;SomeElementYouWantToAnimate&#39;);
element.style.position = &#39;absolute&#39;;

function step(timestamp) {
  if (!start) start = timestamp;
  var progress = timestamp - start;
  element.style.left = Math.min(progress / 10, 200) + &#39;px&#39;;
  if (progress < 2000) {
    window.requestAnimationFrame(step);
  }
}

window.requestAnimationFrame(step);
//window.requestAnimationFrame(callback);
返回值是一个 long 整数,请求 ID ,是回调列表中唯一的标识。是个非零值,没别的意义。你可以传这个值给 window.cancelAnimationFrame() 以取消回调函数。
Copier après la connexion

requestAnimationFrame est une minuterie qui n'a pas besoin de régler l'heure. Elle s'exécute toutes les 1/60 s. Ceci est basé sur la navigation déterminée par le nombre d'images rafraîchies par le processeur. Mais la compatibilité est un problème si vous l'utilisez, vous devez bien l'écrire.

  • Si possible, essayez d'éviter les recherches globales.

//dom = document.querySelector("#id");
function test() {
    dom = document.querySelector("#id");
}
Copier après la connexion

Par exemple, si vous utilisez uniquement dom dans le test, ne le définissez pas globalement, car il sera recherché dans le périmètre interne de la fonction de test lors de l'exécution, ce qui sera plus rapide.

  • Ne pas utiliser for in sauf si vous ne connaissez pas la longueur du parcours ou l'objet de parcours Array, temps d'exécution résultant (voir code). Il est donc préférable de ne pas l'utiliser, généralement le déplacement d'objets ne sera pas utilisé en pratique. S'il y a des circonstances particulières lors du déplacement d'objets, vous devez également y prêter attention ! ! ! Les choses traversées ne sont pas elles-mêmes. Je pensais que cela traverserait sa chaîne de prototypes.

    function t1(){        //20ms
        var i = 0;
       for(item in anObj) {
           i++
       }
       if( i === 100000){
           console.log(&#39;for in ok&#39;)
       }
    }
    function t2(){     //4ms
        var len = anObj.length;
        var i = 0;
        for(var i = 0 ;i < len;i++){
            i++
        }
        if( i === 100000){
            console.log(&#39;for ok&#39;)
        }
    }
Copier après la connexion
Écran squelette

  • Il s'agit d'améliorer l'expérience utilisateur, similaire à la version améliorée du chargement. Il existe des solutions de génération automatisée. Vous pouvez y jeter un oeil si vous êtes intéressé.

ios interdit à la page d'identifier les numéros de téléphone mobile. Android interdit la reconnaissance des adresses email.

  • Tête css bottom js.
<meta name="format-detection" content="telephone=no" />
<meta name="format-detection" content="email=no" />
Copier après la connexion
  • Tout le monde sait que js bloquera l'analyse de dom et augmentera le temps d'écran blanc. Assurez-vous donc d'être attentif.

    En fait, il existe de nombreux détails d'optimisation, vous devez donc cultiver vos habitudes de codage, accumuler un peu et accumuler lentement, la qualité du code sera certainement différente.

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

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

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)

Comment utiliser le bouton bootstrap Comment utiliser le bouton bootstrap Apr 07, 2025 pm 03:09 PM

Comment utiliser le bouton bootstrap? Introduisez Bootstrap CSS pour créer des éléments de bouton et ajoutez la classe de bouton bootstrap pour ajouter du texte du bouton

Comment insérer des photos sur bootstrap Comment insérer des photos sur bootstrap Apr 07, 2025 pm 03:30 PM

Il existe plusieurs façons d'insérer des images dans Bootstrap: insérer directement les images, en utilisant la balise HTML IMG. Avec le composant d'image bootstrap, vous pouvez fournir des images réactives et plus de styles. Définissez la taille de l'image, utilisez la classe IMG-FLUID pour rendre l'image adaptable. Réglez la bordure en utilisant la classe IMG-border. Réglez les coins arrondis et utilisez la classe Roundée IMG. Réglez l'ombre, utilisez la classe Shadow. Redimensionner et positionner l'image, en utilisant le style CSS. À l'aide de l'image d'arrière-plan, utilisez la propriété CSS d'image d'arrière-plan.

Comment redimensionner le bootstrap Comment redimensionner le bootstrap Apr 07, 2025 pm 03:18 PM

Pour ajuster la taille des éléments dans Bootstrap, vous pouvez utiliser la classe de dimension, qui comprend: ajuster la largeur: .col-, .w-, .mw-ajustement Hauteur: .h-, .min-h-, .max-h-

Comment télécharger des fichiers sur bootstrap Comment télécharger des fichiers sur bootstrap Apr 07, 2025 pm 01:09 PM

La fonction de téléchargement de fichiers peut être implémentée via Bootstrap. Les étapes sont les suivantes: introduire les fichiers Bootstrap CSS et JavaScript; créer des champs d'entrée de fichier; créer des boutons de téléchargement de fichiers; gérer les téléchargements de fichiers (à l'aide de FormData pour collecter des données, puis envoyer au serveur); style personnalisé (facultatif).

Comment supprimer le style par défaut dans la liste Bootstrap? Comment supprimer le style par défaut dans la liste Bootstrap? Apr 07, 2025 am 10:18 AM

Le style par défaut de la liste bootstrap peut être supprimé avec CSS Override. Utilisez des règles et sélecteurs CSS plus spécifiques, suivez le «principe de proximité» et le «principe de poids», en remplacement du style par défaut de bootstrap. Pour éviter les conflits de style, des sélecteurs plus ciblés peuvent être utilisés. Si le remplacement est infructueux, ajustez le poids du CSS personnalisé. Dans le même temps, faites attention à l'optimisation des performances, évitez la surutilisation de! Importante et écrivez le code CSS concis et efficace.

Comment changer la taille d'une liste de bootstrap? Comment changer la taille d'une liste de bootstrap? Apr 07, 2025 am 10:45 AM

La taille d'une liste d'amorçage dépend de la taille du conteneur qui contient la liste, pas de la liste elle-même. L'utilisation du système de grille de bootstrap ou de Flexbox peut contrôler la taille du conteneur, redimentant ainsi indirectement les éléments de la liste.

Comment régler la barre de navigation bootstrap Comment régler la barre de navigation bootstrap Apr 07, 2025 pm 01:51 PM

Bootstrap fournit un guide simple pour configurer les barres de navigation: l'introduction de la bibliothèque bootstrap pour créer des conteneurs de barre de navigation Ajouter l'identité de marque Créer des liens de navigation Ajouter d'autres éléments (facultatif) Styles d'ajustement (facultatif)

Comment disposer bootstrap Comment disposer bootstrap Apr 07, 2025 pm 02:24 PM

Pour utiliser Bootstrap pour disposer d'un site Web, vous devez utiliser un système de grille pour diviser la page en conteneurs, lignes et colonnes. Ajoutez d'abord le conteneur, puis ajoutez les lignes dedans, ajoutez les colonnes dans la ligne et enfin ajoutez le contenu dans la colonne. La fonction de mise en page réactive de Bootstrap ajuste automatiquement la disposition en fonction des points d'arrêt (XS, SM, MD, LG, XL). Différentes dispositions sous différentes tailles d'écran peuvent être réalisées en utilisant des classes réactives.

See all articles