ホームページ ウェブフロントエンド jsチュートリアル JavaScript の遅延読み込みについて_JavaScript のヒント

JavaScript の遅延読み込みについて_JavaScript のヒント

May 16, 2016 pm 04:01 PM
javascript 遅延読み込み

JavaScript の遅延読み込みは、解決策を見つけるのに夢中になる可能性がある Web 上の問題の 1 つです。

多くの人は「それなら defer や async を使う」と言い、「それなら JavaScript コードをページ コードの最後に置く」と言う人さえいます。

上記の方法では、Web ページが完全にロードされた後に外部 JS をロードする問題を解決できません。上記の方法では、Google のページ速度テスト ツールから「javascript の読み込みの遅延」という警告が表示される場合もあります。したがって、ここでの解決策は、Google ヘルプ ページの推奨解決策になります。

JavaScript を遅延ロードする方法

以下は Google が推奨するコードです。このコードは、 タグの前 (HTML ファイルの下部近く) に配置する必要があります。また、外部 JS ファイル名を強調表示しました。

<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "defer.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
ログイン後にコピー

ここでは何が行われるのでしょうか?
このコードは、ドキュメント全体がロードされるまで待ってから、外部ファイル「defer.js」をロードすることを意味します。

具体的な手順

1. 上記のコードをコピーします

2. HTML の タグの前 (HTML ファイルの下部近く) にコードを貼り付けます。

3. 「defer.js」を外部 JS ファイル名に変更します

4. ファイルパスが正しいことを確認してください。例: 「defer.js」のみを入力する場合、「defer.js」ファイルは HTML ファイルと同じフォルダーに存在する必要があります。

このコードはどこで使用できるか (どこで使用できないか)

このコードは、ドキュメントがロードされるまで、指定された外部 JS ファイルをロードしません。したがって、通常のページ読み込みに依存する JavaScript コードをここに配置しないでください。代わりに、JavaScript コードを 2 つのグループに分ける必要があります。 1 つのグループは、ページで必要なためすぐに読み込まれる JavaScript コードであり、もう 1 つのグループは、ページが読み込まれた後に動作する JavaScript コード (クリック イベントの追加など) です。実行前にページが読み込まれるまで待機する必要がある JavaScript コードは、外部ファイルに配置してからインポートする必要があります。

たとえば、このページでは、遅延読み込み用に上記のファイル、つまり Google アナリティクス、Viglink (収益を上げる方法)、および下部に表示される Google バッジ (私のソーシャル メディア) を使用しています。私にとって、上記の無関係なコンテンツを初期段階でロードする必要がないため、最初のページのロード時にこれらのファイルをロードする理由はありません。もしかしたら、あなたのページにも同じ性質のファイルがあるかもしれません。では、Web ページのコンテンツを表示する前に、これらのファイルが読み込まれるまでユーザーに待ってもらいたいでしょうか?

他の方法を使用してみてはいかがでしょうか?

コードを直接挿入し、スクリプトを下部に配置し、「defer」または「async」を使用すると、最初にページをロードしてから JS をロードするという目的を達成できず、ブラウザ間で一貫したパフォーマンスが得られません。

なぜそれが重要なのでしょうか?

その重要性は、Google がランキング要素の 1 つとしてページ速度を使用しており、ユーザーもページが速く読み込まれることを望んでいるという事実によるものです。モバイル検索エンジンの最適化にとっても非常に重要です。 Google は、ページの最初の読み込みにかかる時間に基づいてページ速度を測定します。これは、ページの読み込みイベントをできるだけ早く取得する必要があることを意味します。ページの初期読み込み時間は、Google がウェブページの品質を評価する方法です (ユーザーはページが読み込まれるのを待っていることを忘れないでください)。 Google は、上記の無関係なコンテンツを重要度の順に並べ、すべてのリソース (js、css、画像など) を重要なレンダリング パスから遠ざけることを積極的に推進および推奨しています。そうすることには努力の価値があります。それがユーザーを喜ばせ、Google を喜ばせるのであれば、そうすべきです。

使用例

このコードの使用例を確認できるページを作成しました。

テスト用のサンプル ファイル

分かりました。説明のために、テスト用にいくつかのサンプル ページを作成しました。どのページも同じことを行います。これは通常の HTML ページで、2 秒間待機してから「hello world」を出力する JavaScript スクリプトが含まれています。これらのファイルをテストすると、メソッドが 1 つだけあり、その読み込み時間に 2 秒の待ち時間が含まれていないことがわかります。

スクリプトを直接挿入するページ –

ここをクリック

「defer」を使用する外部スクリプトを含むページ –

ここをクリックしてください 上記の紹介コードを使用したページ –
ここをクリック

重要なポイント

最優先事項は、コンテンツをできるだけ早くユーザーに配信することです。そして、JavaScript コードをどのように扱うかについて考えたこともありませんでした。ただし、ユーザーは、重要ではないスクリプトのコンテンツを待たされる必要はありません。フッターがどれほどクールであっても、フッターまでスクロールしないユーザーが、フッターをクールにする JavaScript ファイルをロードする理由はありません。

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Spring Data JPA のアーキテクチャと動作原理は何ですか? Spring Data JPA のアーキテクチャと動作原理は何ですか? Apr 17, 2024 pm 02:48 PM

SpringDataJPA は JPA アーキテクチャに基づいており、マッピング、ORM、トランザクション管理を通じてデータベースと対話します。そのリポジトリは CRUD 操作を提供し、派生クエリによりデータベース アクセスが簡素化されます。さらに、遅延読み込みを使用して必要な場合にのみデータを取得するため、パフォーマンスが向上します。

Linuxにおけるダイナミックリンクとスタティックリンクの本来の意味は何でしょうか? Linuxにおけるダイナミックリンクとスタティックリンクの本来の意味は何でしょうか? Feb 05, 2024 pm 05:45 PM

いつものように、いくつか質問してみましょう。なぜダイナミック リンクなのでしょうか?動的リンクを行うにはどうすればよいですか?アドレス非依存コード技術とは何ですか?遅延結合技術とは何ですか?プログラムの実行中に明示的なリンクを行うにはどうすればよいですか?なぜダイナミックリンクなのか?動的リンクの登場は、静的リンクのいくつかの欠点を解決するためのものです: メモリとディスク領域の節約: 以下の図に示すように、Program1 と Program2 にはそれぞれ Program1.o と Program2.o という 2 つのモジュールが含まれており、どちらも Lib を必要とします。 ○モジュール。静的リンクの場合、両方のターゲット ファイルは Lib.o モジュールを使用するため、リンクによって出力された実行可能ファイル Program1 と Program2 にコピーがあり、同時に実行されます。

HTML画像が大きすぎる場合の対処法 HTML画像が大きすぎる場合の対処法 Apr 05, 2024 pm 12:24 PM

大きすぎる HTML 画像を最適化する方法をいくつか紹介します。 画像ファイル サイズを最適化する: 圧縮ツールまたは画像編集ソフトウェアを使用します。メディア クエリを使用する: デバイスに基づいて画像のサイズを動的に変更します。遅延読み込みを実装します。画像が表示領域に入ったときにのみ画像を読み込みます。 CDN を使用する: イメージを複数のサーバーに配布します。画像プレースホルダーを使用する: 画像の読み込み中にプレースホルダー画像を表示します。サムネイルを使用する: 画像の小さいバージョンを表示し、クリックするとフルサイズの画像を読み込みます。

Java JPA パフォーマンス最適化のヒント: アプリケーションを高速化する Java JPA パフォーマンス最適化のヒント: アプリケーションを高速化する Feb 19, 2024 pm 09:03 PM

記事のキーワード: JavaJPA パフォーマンスの最適化 ORM エンティティ管理 JavaJPA (JavaPersistance API) は、Java オブジェクトを使用してデータベース内のデータを操作できるようにするオブジェクト リレーショナル マッピング (ORM) フレームワークです。 JPA は、データベースと対話するための統合 API を提供し、同じコードを使用して異なるデータベースにアクセスできるようにします。さらに、JPA は、アプリケーションのパフォーマンスを向上させることができる遅延ロード、キャッシュ、ダーティ データ検出などの機能もサポートしています。ただし、使用方法を誤ると、JPA のパフォーマンスがアプリケーションのボトルネックになる可能性があります。一般的なパフォーマンスの問題は次のとおりです。 N+1 クエリの問題: アプリケーションで JPQL クエリを使用すると、N+1 クエリの問題が発生する可能性があります。このような中で

Laravelのパフォーマンスボトルネックを解読:最適化テクニックを完全公開! Laravelのパフォーマンスボトルネックを解読:最適化テクニックを完全公開! Mar 06, 2024 pm 02:33 PM

Laravelのパフォーマンスボトルネックを解読:最適化テクニックを完全公開! Laravel は人気のある PHP フレームワークとして、開発者に豊富な機能と便利な開発エクスペリエンスを提供します。ただし、プロジェクトのサイズが大きくなり、訪問数が増加すると、パフォーマンスのボトルネックという課題に直面する可能性があります。この記事では、開発者が潜在的なパフォーマンスの問題を発見して解決できるように、Laravel のパフォーマンス最適化テクニックについて詳しく説明します。 1. Eloquent の遅延読み込みを使用したデータベース クエリの最適化 Eloquent を使用してデータベースにクエリを実行する場合は、次のことを避けてください。

Hibernate はデータベース クエリのパフォーマンスをどのように最適化しますか? Hibernate はデータベース クエリのパフォーマンスをどのように最適化しますか? Apr 17, 2024 pm 03:00 PM

Hibernate クエリのパフォーマンスを最適化するためのヒントには、遅延読み込みを使用してコレクションと関連オブジェクトの読み込みを延期すること、バッチ処理を使用して更新、削除、または挿入操作を組み合わせて、HQL 外部接続を使用して頻繁にクエリされるオブジェクトをメモリに保存することなどがあります。エンティティとその関連エンティティを取得し、SELECTN+1 クエリ モードを回避するためにクエリ パラメータを最適化し、ブロック内の大量のデータを取得するためにインデックスを使用します。

iframe読み込みイベントを防ぐ方法 iframe読み込みイベントを防ぐ方法 Feb 19, 2024 am 08:02 AM

iframe 読み込みイベントを防ぐ方法 Web 開発では、他の Web ページやコンテンツを埋め込むために iframe タグをよく使用します。デフォルトでは、ブラウザが iframe をロードすると、loading イベントがトリガーされます。ただし、場合によっては、iframe の読み込みを遅らせたり、読み込みイベントを完全に阻止したりしたい場合があります。この記事では、コード例を通じてこれを実現する方法を説明します。 1. iframe の読み込みを遅らせる iframe の読み込みを遅らせたい場合は、次を使用できます。

Hibernate ORM フレームワークの欠点は何ですか? Hibernate ORM フレームワークの欠点は何ですか? Apr 18, 2024 am 08:30 AM

HibernateORM フレームワークには次の欠点があります。 1. クエリ結果とエンティティ オブジェクトをキャッシュするため、メモリ消費量が大きくなります。 2. アーキテクチャと構成についての深い理解が必要になるため、読み込みが遅くなり、予期しない遅延が発生します。 5. 多数のエンティティが同時にロードまたは更新されると、パフォーマンスのボトルネックが発生します。その結果、データベース間で差異が生じます。

See all articles