Fermer

avril 4, 2024

Trucs et astuces pour rendre vos applications Web ultra-rapides

Trucs et astuces pour rendre vos applications Web ultra-rapides


Les performances d’une application Web peuvent faire ou défaire l’expérience utilisateur. Les sites Web lents et non optimisés sont souvent abandonnés par les utilisateurs et moins bien classés dans les moteurs de recherche. Découvrez comment utiliser divers outils et techniques pour optimiser les performances et rendre vos applications Web incroyablement rapides.

Dans un monde numérique en constante évolution, les utilisateurs sont habitués à utiliser des applications Web qui offrent une expérience utilisateur exceptionnelle, sans bug et, surtout, rapides.

Les utilisateurs peuvent être très impatients, et même un retard d’une seconde peut les amener à quitter votre application et à aller ailleurs. De plus, Google et les autres moteurs de recherche donnent la priorité aux sites Web plus rapides. Par conséquent, les performances et les temps de chargement rapides sont cruciaux pour fidéliser les utilisateurs et même être visibles par les utilisateurs via les moteurs de recherche.

Dans cet article, nous aborderons plusieurs approches pour créer des applications Web ultra-rapides.

Redimensionner et optimiser les images

Les images non optimisées peuvent avoir un impact énorme sur les temps de chargement d’un site Web. Heureusement, il y a quelques choses qui peuvent être faites :

  • Redimensionner les images et propose plusieurs versions avec des dimensions ciblant différentes tailles d’écran. Charger une image 5000×3000 dans un espace 500×300 est une grosse perte de temps et de bande passante pour l’utilisateur.

  • Optimiser en utilisant des outils comme Écraser, Pointu ou ImageMagick pour réduire la taille de l’image sans compromettre la qualité.

  • Utiliser formats modernes, comme Avif et Webp. Ils proposent des tailles beaucoup plus petites et se chargent donc plus rapidement. Le HTML picture L’élément peut être utilisé pour laisser le navigateur décider quel type d’image doit être chargé.

<picture>
  <source srcset="/images/logo-400x119.avif" type="image/avif" />
  <source srcset="/images/logo-400x119.webp" type="image/webp" />
  <img
    src="/images/logo-400x119.png"
    width="200"
    height="59"
  />
</picture>

Prélecture avec indications de priorité

Vous pouvez indiquer aux navigateurs comment hiérarchiser le moment où les ressources doivent être récupérées en utilisant des indicateurs de ressources. Par exemple, en ajoutant fetchpriority="high" vers une image ou un lien indiquera au navigateur qu’il doit être récupéré immédiatement. En revanche, les ressources avec fetchpriority="low" serait récupéré une fois que le navigateur aurait traité des tâches plus importantes.

<img src="header-image.png" fetchpriority="high" >
<img src="footer-image.png" fetchpriority="low" >

Cette approche est très utile pour les images qui ne sont pas immédiatement visibles dans la fenêtre. De plus, les images peuvent également être combinées avec loading="lazy"de sorte que le navigateur diffère leur chargement jusqu’à ce qu’un utilisateur les fasse défiler.

Utiliser le chargement paresseux et le tremblement d’arbre

Les bundlers modernes sont capables de supprimer le code inutilisé et de diviser le code en morceaux séparés. Une approche très courante consiste à charger paresseusement et à diviser le code par routes. Essentiellement, si un utilisateur visite la page d’accueil, le navigateur récupérera et exécutera uniquement le code qui lui est nécessaire. Lorsqu’un utilisateur accède à une autre page, telle que Contact, le navigateur récupère les ressources nécessaires à cette page, et ainsi de suite. Les applications modernes peuvent contenir beaucoup de code, et le transmettre à chaque utilisateur à chaque demande n’est certainement pas une bonne idée.

Cependant, nous n’avons pas besoin de coder uniquement par itinéraires. C’est également une bonne idée de diviser et de charger paresseusement les fonctionnalités qui ne sont pas immédiatement visibles pour les utilisateurs, telles que les fonctionnalités modales ou de chargement différé qui sont complexes et nécessitent un certain temps pour être chargées et configurées avant d’être prêtes à être utilisées.

Scripts tiers à chargement différé

Les sites Web peuvent utiliser divers services tiers pour des tâches telles que l’analyse, le rapport d’erreurs, etc., généralement via l’importation de leurs bibliothèques SDK. Cependant, ceux-ci peuvent souvent être volumineux et ne sont souvent pas cruciaux pour les besoins immédiats de l’utilisateur. Par conséquent, c’est certainement une bonne idée de différer le chargement et l’initialisation des scripts tiers jusqu’à ce que le navigateur ait fini de récupérer et d’exécuter les fonctionnalités de base.

Réduisez le code et regroupez les versions de production

De nos jours, de nombreuses applications sont construites à l’aide d’outils comme Vite, Webpack ou de bundles personnalisés fournis par des frameworks tels que Next.js. Ces outils fournissent des commandes pour exécuter le serveur de développement et créer une version de production de l’application. Il est crucial de toujours déployer la version de production, car celle de développement contient beaucoup de code qui n’est pas optimisé. Au cours du processus de création, les bundlers optimisent le code à l’aide de diverses techniques, telles que la minification, la suppression des espaces blancs et des commentaires, et le raccourcissement des noms de variables longs pour réduire la taille finale du bundle.

Travailleurs du service de cache

Une autre approche utile pour améliorer les performances consiste à faire appel à des techniciens de service. Bien qu’ils n’améliorent pas les performances lorsqu’un utilisateur visite votre site Web pour la première fois, les techniciens de service peuvent mettre en cache les ressources récupérées localement et les proposer aux utilisateurs lors de leurs visites ultérieures.

Utiliser un réseau de diffusion de contenu (CDN)

Si vous avez des ressources ou des pages statiques, c’est certainement une bonne idée d’utiliser un réseau de diffusion de contenu (CDN). Les CDN peuvent servir les ressources statiques de votre application à partir d’emplacements proches de vos utilisateurs, minimisant ainsi la latence. De bons exemples de CDN sont CDN Cloudflare et Amazon CloudFront.

Compresser des fichiers

Si vous déployez votre propre serveur personnalisé, assurez-vous d’avoir activé la compression Brotli ou Gzip sur votre serveur HTTP, car les fichiers compressés seront récupérés plus rapidement par le navigateur en raison de leur plus petite taille.

Rationaliser les polices

Qui ne veut pas que son site Web soit superbe et se démarque de ses concurrents ? Les polices sont un excellent moyen d’améliorer l’apparence et le style d’un site Web. Malheureusement, les polices peuvent avoir un impact considérable sur le temps de chargement d’un site Web. Il est donc important de minimiser le nombre de polices et de styles utilisés.

Par exemple, si votre site Web utilise uniquement 400 et 600 variantes de police, n’importez pas toutes les autres variantes disponibles comme 300, 500, 700, etc. De plus, au lieu d’utiliser des polices personnalisées, vous pouvez utiliser par défaut les polices système, afin que votre site Web n’ait pas besoin d’en télécharger de nouvelles.

Utiliser des fournisseurs d’hébergement et des services appropriés

Certains hébergeurs peuvent proposer des services mieux adaptés à votre application. Par exemple, des services comme Rendre ou Vercel déployez automatiquement des actifs statiques sur un CDN global, ce qui offrira aux utilisateurs une faible latence. En comparaison, si vous utilisez un service qui déploie votre application uniquement dans une seule zone, les utilisateurs éloignés de cette région devront attendre plus longtemps pour que votre site Web se charge.

Cependant, un fournisseur d’hébergement n’est pas le seul service dont vous devriez vous préoccuper. Un autre bon exemple est celui d’un fournisseur de base de données. De nouveaux fournisseurs de bases de données apparaissent de temps en temps, mais vous devez vous assurer que vous utilisez un service fiable et qui ne subit pas de temps d’arrêt fréquents. Si votre application repose sur la récupération de données à partir d’une base de données avant de les transmettre à vos utilisateurs, vos utilisateurs ne pourront pas voir grand-chose si votre base de données est en panne.

Il existe différents outils qui peuvent être utilisés pour vérifier les performances d’un site Web, tels que Informations sur la vitesse de page, GTmetrix ou Phare. Ils vérifient différents aspects des performances d’un site Web, tels que le temps de blocage des scripts, la plus grande peinture de contenu (LCP), le changement de mise en page cumulatif (CLS), le temps d’interactivité (TTI), et fournissent même des conseils sur les causes des retards et suggèrent des correctifs possibles. .

Cependant, après avoir vérifié que votre site Web est performant, il est nécessaire de continuer à surveiller sa vitesse pour éviter d’introduire des régressions. Cela peut être fait en utilisant des services de surveillance des performances tels que Pingdom et en introduisant des tests de performances automatisés dans votre pipeline CI/CD. Au lieu de trouver une régression des performances qui pourrait affecter les utilisateurs en production, elle peut être découverte avant le déploiement du site Web.

Conclusion

Afin de réaliser une application Web rapide, vous aurez besoin d’une combinaison de bonnes pratiques de codage, d’optimisations côté serveur et d’un choix judicieux d’outils et de plates-formes tierces. Bien qu’il existe de nombreuses approches pour améliorer les performances Web, les conseils mentionnés dans cet article peuvent constituer un bon début pour résoudre de nombreux goulots d’étranglement en matière de performances, et même un site Web apparemment lent peut être transformé en un chef-d’œuvre incroyablement rapide.




Source link