シリーズ概要
モバイルウェブの隆盛の時代、携帯電話のネットワーク環境やパフォーマンスはPCに比べて劣悪であるため、速度の最適化が再び注目されています。携帯電話でウェブページを開くと、ページがカタツムリのようなスピードで表示されるのがはっきりと感じられます。
このシリーズの最適化はモバイル環境に基づいています。もちろん、ほとんどのルールは PC にも適しています。
最適化の基本原則
速度の最適化にはいくつかの基本的な考え方があるので、事前にまとめておきましょう
オンデマンド読み込み(必要なものだけを読み込みます)
並列(シリアルなものを並列にする)
圧縮(サイズを削減します) )
キャッシュ (キャッシュを使用してリクエストの待機を減らします)
予測 (ユーザーの行動を予測し、リクエストを事前に発行します)
マージ (分散した複数のファイルをマージしてリクエストを減らします)
自動化 (速度の最適化を従来の、自動化ツール (gulp、grunt、fis など) と組み合わせてコストを削減します)
本題に入り、css を最適化します
なぜ最初の記事で css について話しているのかというと、css は最適化するのが最も難しいからです。画像と JS の両方を遅延読み込みできますが、CSS はそれができません。CSS を DOM の前に読み込む必要があり、CSS が DOM レンダリングをブロックするという現実を受け入れる必要があります。
CSS 最適化圧縮 (cssshrink)
通常、主にスペースと改行を削除するために、CSS に対して定期的な圧縮を実行します。ここで推奨される cssshrink は、より詳細な作業を実行し、最初に css パーサーを通じて css を解析し、次に対象を絞った最適化を実行します。たとえば、Huiba は 0px と 0% を 0 に変換し、太字を 700 に変換します。これは、文字レベルでの究極の圧縮です。
Cssshrink 固有の最適化戦略、ここをクリックして表示します
cssshrink: GitHub アドレス
CSS 最適化マージ
gulp-concat を使用して複数の CSS をマージします
ブロックとリクエストを減らすために @import を使用しないでください
CSS 逆アセンブリ
の点は上記と矛盾しているようです。これは CSS と最適化の他の部分の違いでもあります。 一般に、私たちは css を上部に、js を下部に配置することに慣れています。これは良い習慣ですが、CSS にとって最良の選択ではありません。
モバイル側では、誰もが最初のスクリーンタイム、つまりユーザーがページを閲覧する時間を非常に重視します。ページ全体の CSS を先頭に配置します。最初の画面で使用されていない CSS が大量にあると、最初の画面の表示が妨げられます。
headは最初の画面で使用できるCSSのみを配置し、最初の画面以外のCSSは下に移動します
CSS使用率
一般的に、複数人でページをメンテナンスすると、未使用のCSSが大量に残ります。これには、いくつかの検出ツールが必要です
。unu
1.1 unu は、ページ上のどの CSS が使用されていないかを検出するために使用される Node.js モジュールです
1.2 利点: 非常に使いやすい視覚的なインターフェイスを提供し、URL を入力するとページの CSS の使用状況が表示されます
1.3 欠点: 現在スタイルタグ css のみをサポートしており、ページ上で js は実行されません
uncss
2.1 uncss は、ページから未使用の CSS を削除できるモジュールです
2.2 利点: コマンドラインと gulp、grunt プラグインをサポート、リンクをサポートphantomjs に基づいたメソッドで、ブラウザーの実行をシミュレートし、js の実行をサポートします
2.3 欠点: 1 つの URL のみでエクスポートされた CSS には実用的な価値がなく、スタイル タグをサポートしません
critical
3.1 Critical は、最初の URL で未使用の CSS を検出するために使用されますscreen モジュール
3.2 利点: 検出のために最初の画面の幅と高さを入力でき、gulp および grunt プラグインがあります
3.3 欠点: URL をサポートせず、ローカル HTML のみをサポートし、スタイル タグをサポートしません
まとめ
速度の最適化は開発者にとって簡単な作業です 生産性を低下させるものは可能な限り自動化し、ルールを設定し、その後の劣化を回避しながら苦労せずに最適化する必要があります。