ホームページ ウェブフロントエンド CSSチュートリアル ページのパフォーマンスの鍵: ページの再描画やリフローを回避するためにフロントエンドを最適化する

ページのパフォーマンスの鍵: ページの再描画やリフローを回避するためにフロントエンドを最適化する

Jan 26, 2024 am 09:30 AM
フロントエンドの最適化 リフロー 再描画

ページのパフォーマンスの鍵: ページの再描画やリフローを回避するためにフロントエンドを最適化する

フロントエンド最適化の要点: ページの再描画とリフローを効果的に回避する方法、具体的なコード例が必要です

インターネットの急速な発展に伴い、フロントエンドWeb ページのパフォーマンス最適化の観点からの開発はますます重要になっています。中でも、ページの再描画とリフローを回避することは、Web ページのパフォーマンスを向上させるための重要な要素です。この記事では、フロントエンド開発者がページの再描画とリフローを効果的に削減し、ユーザー エクスペリエンスを向上させるのに役立ついくつかの効果的な方法と具体的なコード例を紹介します。

1. ページの再描画とリフローの原因と影響

  1. ページの再描画: 要素のスタイルが変更されると、ブラウザーは要素の一部または全体を再描画する必要があることを意味します。コンテンツ。たとえば、要素の色や背景などのスタイル属性が変更されると、要素は再描画されます。
  2. ページ リフロー: ページ レイアウトと幾何学的属性が変更された場合、ブラウザーは要素のレイアウトと幾何学的属性を再計算し、ページのレンダリング結果を更新する必要があることを意味します。たとえば、要素のサイズ、位置、その他の属性が変更されると、要素とその祖先要素のリフローがトリガーされます。

再描画とリフローにより、ブラウザがページを再計算してレンダリングすることになり、追加のコンピューティング リソースと時間を消費するため、ページのパフォーマンスと応答速度に影響します。特にモバイル デバイスでは、このパフォーマンスの低下はさらに顕著になります。

2. ページの再描画とリフローを回避する方法

  1. 仮想 DOM の使用: 仮想 DOM を使用すると、頻繁なページの再描画とリフローを回避できます。ページ上の要素と状態をメモリに保存し、変更された部分のみを更新し、最後に変更された部分をページにレンダリングすることで機能します。 React や Vue などのフロントエンド フレームワークが提供する仮想 DOM メカニズムを使用して実装できます。
  2. バッチでの DOM 操作: DOM に対する直接操作の数を減らし、DOM 操作をバッチで実行してみます。要素のスタイルを複数回変更する必要がある場合は、クラスを追加または削除することで複数の要素のスタイルを一度に変更できます。

    // 错误示例:多次修改元素样式
    element.style.width = '100px';
    element.style.height = '200px';
    element.style.backgroundColor = 'red';
    
    // 正确示例:一次性修改元素样式
    element.classList.add('modified');
    ログイン後にコピー
  3. レイアウトの強制同期を避ける: offsetWidth、offsetHeight などの要素のレイアウト情報を取得する必要がある操作では、呼び出しの数を最小限に抑える必要があります。要素のレイアウト情報を複数回取得する必要がある場合は、それを変数に保存してから再利用できます。

    // 错误示例:多次获取元素布局信息
    for (let i = 0; i < elements.length; i++) {
     console.log(elements[i].offsetWidth);
     console.log(elements[i].offsetHeight);
    }
    
    // 正确示例:一次获取元素布局信息
    for (let i = 0; i < elements.length; i++) {
     const width = elements[i].offsetWidth;
     const height = elements[i].offsetHeight;
     console.log(width);
     console.log(height);
    }
    ログイン後にコピー
  4. アニメーションの最適化を使用する: アニメーション効果を使用する必要がある場合は、要素のスタイル属性を直接変更することを避け、CSS アニメーションを使用するか、最適化のために requestAnimationFrame メソッドを使用してみてください。 CSS アニメーションでは、transform 属性を使用して、ページのリフローをトリガーせずに、ディスプレイスメントやスケーリングなどのアニメーション効果を実現できます。

    /* CSS动画示例 */
    .box {
     transition: transform 1s;
    }
    
    .box:hover {
     transform: translateX(100px);
    }
    ログイン後にコピー
    /* requestAnimationFrame示例 */
    function animate() {
     element.style.transform = `translateX(${x}px)`;
    
     if (x < targetX) {
     requestAnimationFrame(animate);
     }
    }
    
    animate();
    ログイン後にコピー
  5. ドキュメント フラグメントの使用: 複数の DOM ノードを動的に生成する必要がある場合、ドキュメント フラグメント (DocumentFragment) を使用してパフォーマンスを向上させることができます。ドキュメント フラグメントは仮想 DOM コンテナであり、これを使用して複数の DOM ノードをドキュメントに直接追加し、複数のリフロー操作を削減できます。

    // 错误示例:逐个添加DOM节点
    for (let i = 0; i < data.length; i++) {
     const item = document.createElement('li');
     item.textContent = data[i];
     list.appendChild(item);
    }
    
    // 正确示例:使用文档片段添加DOM节点
    const fragment = document.createDocumentFragment();
    
    for (let i = 0; i < data.length; i++) {
     const item = document.createElement('li');
     item.textContent = data[i];
     fragment.appendChild(item);
    }
    
    list.appendChild(fragment);
    ログイン後にコピー

3. 概要

この記事では、ページの再描画とリフローを回避するためのいくつかの方法を紹介し、具体的なコード例を示します。これらの方法を適切に使用することで、フロントエンド開発者はページの再描画とリフローを効果的に削減し、Web ページのパフォーマンスを向上させ、より良いユーザー エクスペリエンスを提供できます。実際の開発では、開発者は特定のシナリオに基づいて最適化を行い、Web ページのパフォーマンスをさらに向上させることもできます。

以上がページのパフォーマンスの鍵: ページの再描画やリフローを回避するためにフロントエンドを最適化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ace Racing はポストホリデー症候群ですか: 本物の経験豊富なドライバーはすでにランタン フェスティバルの準備を始めています Ace Racing はポストホリデー症候群ですか: 本物の経験豊富なドライバーはすでにランタン フェスティバルの準備を始めています Feb 21, 2024 pm 06:04 PM

もうすぐランタン フェスティバルが近づいています。エース レーシングは、皆さんのために特別にランタン フェスティバルのなぞなぞ当てアクティビティを用意しました。なぞなぞを当てて 6 問正解すると、金貨の報酬を受け取ることができます。なぞなぞを一定数集めると、豪華な報酬も獲得可能です 具体的な内容 それでは、本イベントの内容を見ていきましょう。 Ace Racing はポストホリデー症候群ですか: 本物の経験豊富なドライバーは、すでに元宵節の準備を始めています。やあ、親愛なるドライバーの皆さん、彼らは皆、元宵節が終わるまで春節は終わらないと言っています。私たちは元宵節を歓迎します。もちむすびを食べたり、花火を打ち上げたり…スピードフェスティバルはどこにでもあります フェスティバルのお祭り的で活気に満ちた雰囲気の中で、Xili は「本物の経験豊富なドライバーだけ」が誰でも参加できる興味深いランタンのなぞなぞもいくつか用意しました事前にウォーミングアップをしてください。一緒に予想しましょう~ (追記: ドライバーは今日の公開アカウントのツイートにアクセスして答えを確認できます!) ライダーの皆さん、どうですか?

「レッツゴーマフィン」が新たな連携を開始、ライン子犬風PVが発表 「レッツゴーマフィン」が新たな連携を開始、ライン子犬風PVが発表 Apr 28, 2024 pm 04:46 PM

良いニュースです! Xindong が開発した癒しのアドベンチャー配置モバイル ゲーム「Let's Go, Muffin」が正式に発表されました。ゲームは 5 月 15 日に全国サーバーのパブリック ベータ版を開始します。それだけではありません。パブリックベータ当日にサーバーも同時に起動されます。Maifen は 2 つの IP と協力して、「小麦でも子犬、ハッピー Say Hi!」というスローガンを正式に開始し、人気 IP「Line Line Puppy」と手を組みました。この連動を迎えるべく、LINE Puppy公式も子犬のシンプルなスタイルで特別に連動PVを制作しました!ゲームのマスコットであるマフィン、かわいい白いマルチーズ、小さなゴールデンレトリバーがラインマフィンの世界で楽しんでいる様子が見られます。彼らはRVで走り回り、愛の層を通り抜け、虹を滑り台として使い、ビーチに行って踊り、真夜中に恐ろしい黒い影を倒しました。

Android 12はAndroid 11よりも快適?「最新Android 12とAndroid 11のパフォーマンス比較」 Android 12はAndroid 11よりも快適?「最新Android 12とAndroid 11のパフォーマンス比較」 Feb 07, 2024 am 08:13 AM

Android 12 は、2021 年 5 月 19 日に Google によってリリースされた新しいシステムです。Android 11 の公式イテレーションであり、現在の Android システムの最新バージョンでもあります。国内のすべての主要な携帯電話メーカーは、年末からメジャー リリースを開始します。今年から来年初めにかけて Android 12 ベースのメジャーバージョンアップデートが大規模にプッシュされる 例えば次期 MIUI 13 は Android 12 ベースとなることが決定(一部のローエンドモデルは Android 11 ベース) . それでは、Android 12はAndroid 11と比べてどのような改善をもたらすのでしょうか?一般のユーザーにとってはどのような変更があるのでしょうか?この記事ではそれについて説明しましょう。 01. UIが変わります。ユーザーの認知度: 国内のユーザーの認知度は比較的低いです。 Android 12 の最大の改善点の 1 つは UI デザインにありますが、我が国ではほとんど見られないため、

Meitu AI部分再描画技術公開!好きなように変更してください!美しい絵を部分的に描き直せばやりたい放題 Meitu AI部分再描画技術公開!好きなように変更してください!美しい絵を部分的に描き直せばやりたい放題 Mar 02, 2024 am 09:55 AM

最近では、突然の拡大効果で話題を呼んだ「AI画像拡大」機能や、面白いオートフィル結果が度々話題となり、ネット上でブームを巻き起こしています。ユーザーも積極的にこの機能を試し、その180度の大きな変化にも人々を驚かせ、話題の人気は高まり続けました。それは笑いと熱意を呼び起こすと同時に、AI が現実世界の問題を解決し、ユーザー エクスペリエンスを向上させるのに本当に役立つかどうかに人々が常に注目していることを意味します。 AIGC テクノロジーの急速な発展に伴い、AI 適用シナリオの実装が加速しており、新たな生産性革命が到来することを示しています。最近、Meitu の WHEE などの製品では、AI 画像拡大機能や AI 画像修正機能がリリースされており、簡単なプロンプト入力で、ユーザーが自由に画像を修正できるようになりました。

『崩壊星鉄道』ミハイルどこへ行く 実績ガイド 『崩壊星鉄道』ミハイルどこへ行く 実績ガイド May 09, 2024 pm 09:20 PM

Collapse Star Dome Railwayどこへ行くのミカエルの実績ガイド。本海ドーム鉄道のバージョン 2.2 へのアップデートにより、ゲーム内に多くの新しいコンテンツが体験できるようになりました。「ミハイル、どこへ行くの?」を達成する際に、多くの友人が困難に遭遇したと思います。完了方法がわからないので、今日は詳細なプロセスを説明します。崩壊した星鉄路の案内 どこへ行くの ミハイル 1. 通屯開拓団の能力を引き継ぎ、シノコンニの危機を解決したとき、すべてが解決し、流夢礁の頂上に戻りました。 にマークされている場所が転送ポイントです。下の写真; 2. 到達したら、まっすぐ進み、ミハイルをもう一度見て、彼の前にあるバルコニーを調べます。 3. 調査が完了すると、実績ミハイルを取得できます。

300元を費やして組み立てたコンピューターは、地元の大型モデルで正常に動作しました 300元を費やして組み立てたコンピューターは、地元の大型モデルで正常に動作しました Apr 12, 2024 am 08:07 AM

2023 年が AI 元年とみなされるなら、2024 年は大規模な AI モデルの普及にとって重要な年になる可能性があります。過去 1 年間で、多数の大規模な AI モデルと多数の AI アプリケーションが登場し、Meta や Google などのメーカーも、「AI 人工知能」と同様の独自のオンライン/ローカル大規模モデルを一般に公開し始めています。 「それは手の届かないところにある。」という概念が突然人々に浮かびました。現在、人々は生活の中で人工知能に触れる機会が増えており、注意深く見てみると、アクセスできるさまざまな AI アプリケーションのほぼすべてが「クラウド」上に展開されていることがわかります。大きなモデルをローカルで実行できるデバイスを構築したい場合、ハードウェアは 5,000 元以上の新品の AIPC になります。

QQ メールボックスを使用して QQ バックアップ メールボックスを申請するにはどうすればよいですか? QQ メールボックスを使用して QQ バックアップ メールボックスを申請する方法 QQ メールボックスを使用して QQ バックアップ メールボックスを申請するにはどうすればよいですか? QQ メールボックスを使用して QQ バックアップ メールボックスを申請する方法 Mar 05, 2024 am 09:30 AM

今日お届けする記事は QQ メールボックス ソフトウェアに関するものです。QQ メールボックスを使用して QQ バックアップ メールボックスを申請する方法をご存知ですか? 次のコンテンツでは、QQ メールボックスを使用して QQ バックアップ メールボックスを申請する方法を説明します。以下を見てみましょう。 。 QQ メールボックスにログインした後、メールボックスのホームページで三角形のロゴのアイコンを探すことができます。アイコンが見つからない場合は、画像上の詳細な注釈を表示してアイコンを見つけることができます。見つけたら、3 隅のロゴをクリックし、[バックアップ電子メールの適用] ボタンをクリックします。クリックした後、表示されたページの右上隅にある電子メール アカウント ボタンをクリックします。クリック後、新規登録メール名、パスワード、携帯電話番号等を入力し、登録ボタンをクリックしてください。登録が完了したら、先ほどのメールページに戻り、表示されたボックスをクリックして口座番号を入力します。

Douyinのトラフィック制限を解決するにはどうすればよいですか?トラフィックが逆流できるように制限されている場合はどうすればよいですか? Douyinのトラフィック制限を解決するにはどうすればよいですか?トラフィックが逆流できるように制限されている場合はどうすればよいですか? Mar 22, 2024 am 09:00 AM

Douyinの人気に伴い、ユーザーが共通に直面する問題も徐々に増加していますが、最も懸念されているのはDouyinのトラフィック制限の問題です。 Douyin のトラフィック制限により、ユーザーの動画の視聴数、いいね、コメント数が大幅に減少し、ユーザーの収入や露出の機会に影響を与える可能性があります。 1.Douyinのトラフィック制限を解決するにはどうすればよいですか? 1. コンテンツの品質の向上 Douyin の競争力の核心はコンテンツにあり、高品質のコンテンツのみがより多くのユーザーを引き付けることができます。したがって、コンテンツの品質を向上させることが、Douyin の現状の制限問題を解決する鍵となります。クリエイターはコンテンツの革新に注力し、独自の視点と創造性でユーザーを惹きつけると同時に、コンテンツが興味深く、教育的で実用的なものであることを保証する必要があります。この方法によってのみ、ユーザー エクスペリエンスを継続的に改善し、ユーザーの定着率を高めることができます。 2. リリース時間を調整する Douyin のトラフィック分布には時間パターンがあります。

See all articles