Die Erstellung leistungsstarker und reaktionsfähiger Websites hat für Webentwickler höchste Priorität. Eine Möglichkeit, dies zu erreichen, ist die Priorisierung von Inhalten, bei der kritische Inhalte vor unkritischen Inhalten geladen werden. In diesem Artikel befassen wir uns mit fortgeschrittenen Techniken und Tools, die Webentwicklern dabei helfen, ihre Projekte mithilfe der Priorisierung von Inhalten zu optimieren.
Verwenden Sie PurgeCSS (https://purgecss.com/) und Critical (https://github.com/addyosmani/ Critical) Extrahiert nur die notwendigen CSS-Regeln, die zum Rendern von „above-the-fold“-Inhalten erforderlich sind. PurgeCSS entfernt ungenutztes CSS, während Critical kritisches CSS extrahiert und einfügt, wodurch die Darstellung kritischer Inhalte verbessert wird.
Beispiel
PurgeCSS und Critical installieren:
npm install purgecss critical
Konfigurationsdatei für PurgeCSS erstellen:
// purgecss.config.js module.exports = { content: ['./src/**/*.html'], css: ['./src/css/main.css'], output: './dist/css/', };
Kritisches CSS extrahieren und einbinden:
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')); });
Nutzung Codeaufteilung und dynamische Importe in Webpack (https://webpack.js.org/guides/code-splitting/), um JavaScript in kleinere Teile aufzuteilen. Dadurch wird sichergestellt, dass zunächst nur kritische Skripte geladen werden und unkritische Skripte bei Bedarf geladen werden.
Beispiele
// webpack.config.js module.exports = { // ... optimization: { splitChunks: { chunks: 'all', }, }, }; // 动态导入的使用 async function loadNonCriticalModule() { const nonCriticalModule = await import('./nonCriticalModule.js'); nonCriticalModule.run(); }
Optimieren Sie Bilder mit Tools wie ImageOptim (https://imageoptim.com/) oder Squoosh (https://squoosh.app/). Implementieren Sie reaktionsfähige Bilder mithilfe von srcset-Attributen und modernen Bildformaten wie WebP oder AVIF, um die Leistung zu verbessern.
Beispiel
<picture> <source srcset="image.webp" type="image/webp"> <source srcset="image.avif" type="image/avif"> <img src="image.jpg" alt="Sample image"> </picture>
rel="preload" Verwenden Sie Ressourcentipps wie , , rel="prefetch" und rel="preconnect", um die kritische Ressourcenbelastung zu ermitteln. Priorisieren und Rufen Sie unkritische Ressourcen für die zukünftige Navigation vorab ab.
Beispiel
<!-- 预加载关键资源 --> <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">
Verwenden Sie Google Workbox ( https://developers.google.com/web/tools/workbox ), um einen Service Worker einzurichten Schlüsselressourcen zwischenspeichern und bei nachfolgenden Seitenladevorgängen sofort bereitstellen, wodurch die Leistung verbessert wird.
Beispiel
// workbox.config.js module.exports = { globDirectory: 'dist/', globPatterns: ['**/*.{html,js,css,woff2}'], swDest: 'dist/sw.js', }; // 使用 Workbox CLI 生成 Service Worker npx workbox generateSW workbox.config.js
Durch den Einsatz fortschrittlicher Techniken und Tools zur Inhaltspriorisierung können Webentwickler die Leistung und Benutzererfahrung ihrer Websites erheblich verbessern. Durch die Konzentration auf die Bereitstellung kritischer Inhalte und das Zurückstellen unkritischer Inhalte können Benutzer schnell auf die benötigten Informationen zugreifen. Durch die Implementierung dieser fortschrittlichen Techniken in Ihre Webprojekte wird die wahrgenommene Leistung verbessert, die Absprungraten reduziert und die Benutzerinteraktion erhöht.
Das obige ist der detaillierte Inhalt vonFortschrittliche Technologie zur Priorisierung von Inhalten für Webentwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!