Maison  >  Article  >  interface Web  >  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
DDDavant
2023-11-23 11:17:371403parcourir

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

Créer un fichier de configuration pour PurgeCSS :

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

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'));
  });

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();
}

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>

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">

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer