Web 開発者向けの高度なコンテンツ優先順位付けテクノロジー

DDD
リリース: 2023-11-23 11:25:23
転載
1473 人が閲覧しました

高パフォーマンスで応答性の高い Web サイトを作成することは、Web 開発者にとって最優先事項です。これを実現する 1 つの方法は、コンテンツの優先順位付けです。これには、重要でないコンテンツの前に重要なコンテンツを読み込む必要があります。この記事では、Web 開発者がコンテンツの優先順位付けを使用してプロジェクトを最適化するのに役立つ高度なテクニックとツールについて説明します。

高度なコンテンツ優先順位付け手法とツール

PurgeCSS と Critical を使用して重要な CSS を抽出する

PurgeCSS を使用する ( https:/// purgecss.com/ ) と Critical ( https://github.com/addyosmani/ritic ) は、スクロールせずに見える範囲のコンテンツをレンダリングするために必要な CSS ルールのみを抽出します。 PurgeCSS は未使用の CSS を削除し、Critical は重要な CSS を抽出してインライン化し、重要なコンテンツのレンダリングを向上させます。

PurgeCSS とクリティカルをインストールする:

npm install purgecss critical
ログイン後にコピー

PurgeCSS の構成ファイルを作成する:

// purgecss.config.js
module.exports = {
  content: ['./src/**/*.html'],
  css: ['./src/css/main.css'],
  output: './dist/css/',
};
ログイン後にコピー

クリティカル CSS を抽出してインライン化する:

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'));
  });
ログイン後にコピー

コード分割と動的インポートに Webpack を使用する

Webpack でコード分割と動的インポートを使用する ( https ://webpack.js.org/guides/code-splitting/ ) JavaScript をより小さなチャンクに分割します。これにより、最初は重要なスクリプトのみがロードされ、必要に応じて重要でないスクリプトがロードされるようになります。

##

// webpack.config.js
module.exports = {
  // ...
  optimization: {
    splitChunks: {
      chunks: 'all',
    },
  },
};
// 动态导入的使用
async function loadNonCriticalModule() {
  const nonCriticalModule = await import('./nonCriticalModule.js');
  nonCriticalModule.run();
}
ログイン後にコピー

画像の最適化とレスポンシブ画像

画像の最適化ImageOptim ( https://imageoptim.com/ ) や Squoosh ( https://squoosh.app/ ) などのツールを使用します。 srcset 属性と WebP や AVIF などの最新の画像形式を使用して応答性の高い画像を実装し、パフォーマンスを向上させます。

<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"Use, , rel= 「prefetch」およびその他のリソース ヒント rel="preconnect" を使用して、重要なリソースの読み込みに優先順位を付け、今後のナビゲーションのために重要ではないリソースをプリフェッチします。

##

<!-- 预加载关键资源 -->
<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">
ログイン後にコピー

Google Workbox を使用した Service Worker の実装

改善Google の Workbox ( https://developers.google.com/web/tools/workbox ) を使用して、重要なリソースをキャッシュし、後続のページ読み込み時にすぐにサービスを提供するように Service Worker を設定することで、パフォーマンスを向上させます。

#例

##
// 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
ログイン後にコピー

#結論

高度なコンテンツを活用する テクノロジーの優先順位付けおよびツールを使用すると、Web 開発者は Web サイトのパフォーマンスとユーザー エクスペリエンスを大幅に向上させることができます。重要なコンテンツを最初に配信することに重点を置き、重要でないコンテンツは後回しにすることで、ユーザーは必要な情報に迅速にアクセスできます。これらの高度なテクニックを Web プロジェクトに実装すると、知覚されるパフォーマンスが向上し、直帰率が減少し、ユーザー エンゲージメントが向上します。

以上がWeb 開発者向けの高度なコンテンツ優先順位付けテクノロジーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:dzone.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート