Maison > interface Web > tutoriel HTML > Technologie avancée de priorisation du contenu pour les développeurs Web

Technologie avancée de priorisation du contenu pour les développeurs Web

DDD
Libérer: 2023-11-23 11:25:23
avant
1507 Les gens l'ont consulté

Créer des sites Web performants et réactifs est une priorité absolue pour les développeurs Web. Une façon d’y parvenir consiste à hiérarchiser le contenu, ce qui implique de charger le contenu critique avant le contenu non critique. Dans cet article, nous explorerons des techniques et des outils avancés pour aider les développeurs Web à optimiser leurs projets en utilisant la priorisation du contenu.

Techniques et outils avancés de priorisation du contenu

Extraire les CSS critiques à l'aide de PurgeCSS et Critical

Utiliser PurgeCSS ( https://purgecss.com/ ) et Critical ( https://github.com/addyosmani/ critique ) extrait uniquement les règles CSS nécessaires au rendu du contenu au-dessus de la ligne de flottaison. PurgeCSS supprime les CSS inutilisés, tandis que Critical extrait et intègre les CSS critiques, améliorant ainsi le rendu du contenu critique.

Exemple

Installer PurgeCSS et Critical :

npm install purgecss critical
Copier après la connexion

Créer un fichier de configuration pour PurgeCSS :

// purgecss.config.js
module.exports = {
  content: ['./src/**/*.html'],
  css: ['./src/css/main.css'],
  output: './dist/css/',
};
Copier après la connexion

Extraire et intégrer les CSS critiques :

const critical = require('critical').stream;
const purgecss = require('@fullhuman/postcss-purgecss');
const postcss = require('postcss');
// 使用 PurgeCSS 处理 CSS 文件
postcss([
  purgecss(require('./purgecss.config.js')),
])
  .process(cssContent, { from: 'src/css/main.css', to: 'dist/css/main.min.css' })
  .then((result) => {
    // 使用 Critical 内联关键 CSS
    gulp.src('src/*.html')
      .pipe(critical({ base: 'dist/', inline: true, css: ['dist/css/main.min.css'] }))
      .pipe(gulp.dest('dist'));
  });
Copier après la connexion

Utiliser Webpack pour le fractionnement du code et importation dynamique

Effet de levier fractionnement de code et importations dynamiques dans Webpack ( https://webpack.js.org/guides/code-splitting/ ) pour diviser JavaScript en morceaux plus petits. Cela garantit que seuls les scripts critiques sont chargés initialement et que les scripts non critiques sont chargés en cas de besoin.

Exemples

// webpack.config.js
module.exports = {
  // ...
  optimization: {
    splitChunks: {
      chunks: 'all',
    },
  },
};
// 动态导入的使用
async function loadNonCriticalModule() {
  const nonCriticalModule = await import('./nonCriticalModule.js');
  nonCriticalModule.run();
}
Copier après la connexion

Optimisation d'image et images réactives

Optimisez les images à l'aide d'outils comme ImageOptim ( https://imageoptim.com/ ) ou Squoosh ( https://squoosh.app/ ). Implémentez des images réactives à l'aide des attributs srcset et des formats d'image modernes tels que WebP ou AVIF pour améliorer les performances.

Exemple

<picture>
  <source srcset="image.webp" type="image/webp">
  <source srcset="image.avif" type="image/avif">
  <img src="image.jpg" alt="Sample image">
</picture>
Copier après la connexion

Conseils sur les ressources : préchargement, prélecture et préconnexion

rel="preload" Utilisez des conseils sur les ressources tels que , , rel="prefetch" et rel="preconnect" pour déterminer le chargement des ressources critiques. Priorisez et pré-extraire les ressources non critiques pour une navigation future.

Exemple

<!-- 预加载关键资源 -->
<link rel="preload" href="critical.css" as="style">
<!-- 预取非关键资源 -->
<link rel="prefetch" href="non-critical-image.jpg" as="image">
<!-- 预连接到重要的第三方来源 -->
<link rel="preconnect" href="https://fonts.gstatic.com">
Copier après la connexion

Utilisation de Google Workbox pour implémenter Service Worker

Utilisez Google Workbox ( https://developers.google.com/web/tools/workbox ) pour configurer un service worker pour mettre en cache les ressources des clés et les servir immédiatement lors des chargements de pages suivants, améliorant ainsi les performances.

Exemple

// workbox.config.js
module.exports = {
  globDirectory: &#39;dist/&#39;,
  globPatterns: [&#39;**/*.{html,js,css,woff2}&#39;],
  swDest: &#39;dist/sw.js&#39;,
};
// 使用 Workbox CLI 生成 Service Worker
npx workbox generateSW workbox.config.js
Copier après la connexion

Conclusion

En tirant parti des techniques et des outils avancés de priorisation du contenu, les développeurs Web peuvent améliorer considérablement les performances et l'expérience utilisateur de leurs sites Web. Se concentrer d'abord sur la fourniture de contenu critique et différer le contenu non critique permet aux utilisateurs d'accéder rapidement aux informations dont ils ont besoin. La mise en œuvre de ces techniques avancées dans vos projets Web améliorera les performances perçues, réduira les taux de rebond et augmentera l'engagement des utilisateurs.

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!

Étiquettes associées:
source:dzone.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal