ホームページ ウェブフロントエンド htmlチュートリアル リフローおよび再描画操作を減らすためのヒントと方法

リフローおよび再描画操作を減らすためのヒントと方法

Jan 26, 2024 am 08:04 AM
避ける リフロー 再描画

リフローおよび再描画操作を減らすためのヒントと方法

頻繁なリフローおよび再描画操作を回避する方法

リフローと再描画は、ブラウザーがページをレンダリングするときの 2 つの重要な操作です。リフローとはブラウザが DOM ツリーの変更に基づいて要素の位置とサイズを再計算することを指し、再描画は計算結果に基づいてページを再描画します。これら 2 つの操作は大量のコンピューティング リソースを消費し、ページのパフォーマンスの低下を引き起こします。したがって、Web ページのパフォーマンスを最適化するには、頻繁なリフローおよび再描画操作を回避することが重要です。

この記事では、頻繁なリフローおよび再描画操作を回避する効果的な方法をいくつか紹介し、具体的なコード例を示します。

  1. CSS のtransform属性を使用する
    要素の移動、回転、スケーリングなどの操作を実行する必要がある場合は、要素を直接変更するのではなく、CSSのtransform属性を使用するようにしてください。要素の left、top、width、height、その他の属性。変換操作はリフローをトリガーせず、再描画操作のみをトリガーするため、パフォーマンスが向上します。

サンプル コード:

// 不推荐的方式
element.style.left = '100px';
element.style.top = '200px';
element.style.width = '300px';
element.style.height = '400px';

// 推荐的方式
element.style.transform = 'translate(100px, 200px) scale(1.5)';
ログイン後にコピー
  1. レイアウト プロパティへの頻繁なアクセスを避ける
    offsetWidth、offsetHeight などの JavaScript の要素のレイアウト プロパティを頻繁に読み取る必要がある場合、clientWidth、clientHeight など、頻繁なリフロー操作が発生しないように、これらのプロパティへのアクセスを最小限に抑える必要があります。

サンプルコード:

// 不推荐的方式
for (let i = 0; i < elements.length; i++) {
    const element = elements[i];
    console.log(element.offsetWidth);
}

// 推荐的方式
const length = elements.length;
for (let i = 0; i < length; i++) {
    const element = elements[i];
    console.log(element.offsetWidth);
}
ログイン後にコピー
  1. 仮想 DOM の使用
    仮想 DOM は、JavaScript オブジェクトを通じて実際の DOM を表現するテクノロジーであり、バッチ更新により削減できます。そして再描画操作。多数の DOM 要素を頻繁に変更する必要がある場合、最初に仮想 DOM を介してバッチ処理を実行し、次に実際の DOM を一度に更新することで、リフローと再描画の回数を減らすことができます。

サンプル コード:

// 创建虚拟DOM
const virtualDOM = document.createElement('div');
virtualDOM.style.width = '200px';
virtualDOM.style.height = '300px';

// 批量批处理
for (let i = 0; i < 1000; i++) {
    const element = document.createElement('span');
    element.innerText = 'Hello Virtual DOM';
    virtualDOM.appendChild(element);
}

// 一次性更新真实DOM
document.body.appendChild(virtualDOM);
ログイン後にコピー
  1. スロットルとデバウンスの使用
    スロットルとデバウンスは、ページのパフォーマンスを最適化するために一般的に使用される手法です。スロットルは、イベントのトリガー頻度を制限して、頻繁なトリガーによるリフローおよび再描画操作を防ぐことができます。アンチシェイクは、イベントのトリガー時間を遅らせて、短期間に 1 つのイベントのみをトリガーする効果を実現し、それによってイベントの数を減らすことができます。リフローおよび再描画操作。

サンプル コード:

// 节流方式
function throttle(fn, delay) {
    let timer = null;
    return function() {
        if (!timer) {
            timer = setTimeout(() => {
                timer = null;
                fn.apply(this, arguments);
            }, delay);
        }
    };
}

// 防抖方式
function debounce(fn, delay) {
    let timer = null;
    return function() {
        clearTimeout(timer);
        timer = setTimeout(() => {
            fn.apply(this, arguments);
        }, delay);
    };
}

// 使用节流方式绑定事件
element.addEventListener('scroll', throttle(function() {
    // 处理滚动事件
}, 200));

// 使用防抖方式绑定事件
element.addEventListener('resize', debounce(function() {
    // 处理调整窗口大小事件
}, 200));
ログイン後にコピー

上記の方法により、頻繁なリフローおよび再描画操作を効果的に回避し、ページのパフォーマンスとユーザー エクスペリエンスを向上させることができます。開発プロセス中は、CSS 変換属性の合理的な使用、レイアウト属性へのアクセスの削減、バッチ処理での仮想 DOM の使用、スロットルおよび手ぶれ補正テクノロジの使用などに注意を払う必要があります。ページのレンダリング操作を慎重に最適化すると、ユーザーはより高速でスムーズなブラウジング エクスペリエンスを実現できます。

以上がリフローおよび再描画操作を減らすためのヒントと方法の詳細内容です。詳細については、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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 は「本物の経験豊富なドライバーだけ」が誰でも参加できる興味深いランタンのなぞなぞもいくつか用意しました事前にウォーミングアップをしてください。一緒に予想しましょう~ (追記: ドライバーは今日の公開アカウントのツイートにアクセスして答えを確認できます!) ライダーの皆さん、どうですか?

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

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

「レッツゴーマフィン」が新たな連携を開始、ライン子犬風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 デザインにありますが、我が国ではほとんど見られないため、

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

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

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

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

ドゲロン火星の価格予測 2024-2030 ドゲロン火星の価格予測 2024-2030 Mar 22, 2024 pm 03:33 PM

ELONは2023年に0.0000005196ドルでピークに達し、それ以来下落しています。私たちのドゲロン火星の価格予測では、2024 年末までの価格は 0.0000001409 ドルと推定されています。 2025 年のドゲロン火星の価格予測によると、ELON は 0.0000004709 ドルで取引されています。

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

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

See all articles