目次
JavaScript を遅延読み込みする方法
説明
外部 JavaScript ファイルのスクリプトを呼び出します
详细说明
你可以用它来干嘛(或不能干嘛)
为什么其他方式不行?
为什么这很重要?
キーポイント
ツール
補足拡張
1. defer と async

JavaScript の遅延読み込み

Jan 24, 2017 pm 04:03 PM

JavaScript を遅延読み込みする方法

JavaScript の真の遅延読み込みとは、ページ コンテンツが完全に読み込まれた後にのみ JavaScript を読み込みまたは解析することを意味します (これは、JavaScript がページ速度やクリティカル レンダリング パスに影響を与えることができないことを意味します)。

  • 「onload」イベントを使用して外部 JavaScript リソースを呼び出します

  • ページのコンテンツが読み込まれる前に外部 JavaScript リソースを読み込むことはできません

  • 外部 JavaScript リソースはコンテンツが読み込まれた後にのみ実行を開始し、ページに影響します

説明

インターネットでは、人々が解決策を見つけようとして狂ってしまうことがよくありますが、JavaScript の遅延読み込みもその 1 つです。

多くの人は、「遅延を使用するだけ」、「非同期を使用するだけ」、または「ページの下部に JavaScript を配置するだけ」と言いますが、これらは問題を解決しません。ページが完全にロードされてから (そしてのみ)完全にロードされた後) 外部 JS がロードされます。これらのメソッドでは、Google Page Speed Tool から得られる「JavaScript の読み込みの遅延」警告を通過させることもできません (テスト中に、上記の 3 つのメソッドでこの警告を削除できることが判明したため、翻訳者はこれについていくつかの疑問を抱いています)。

この解決策が答えます。

外部 JavaScript ファイルのスクリプトを呼び出します

このコードは、HTML ドキュメントの </body> タグの前 (HTML ドキュメントの下部近く) に配置されます。外部スクリプトの名前は defer.js です。 </body>标签之前(靠近HTML文档底部)。外部脚本的名称为defer.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文档中,</body>标签之前

  • 3、把defer.js改成你外部文件的名字

  • 4、确保到你文件的路径是正确的。例如:如果你使用”defer.js“,那么”defer.js“文件必须和你的HTML文件在相同文件夹下

你可以用它来干嘛(或不能干嘛)

这段代码在你的页面还没完全加载完成之前不会加载外链文件。你应该把你的JavaScript分成两组,一组是页面需要加载的,另一组是做页面加载后要做的事情(比如寻找click事件或其他事情)。可以接受等待并且一直到页面加载后才加载的JavaScript应该都被放到一个外部文件中调用。

例如,在该页面中我使用了上述的脚本来延迟加载谷歌统计、Viglink、以及底部的Google plus头像。我没有理由在页面初始时加载这些文件,因为这些文件和我上述的内容是不相关的,是非必须加载的。也许在你的页面上也会有相同类型的东西,你会在展示给你的用户内容之前让用户等待加载这些资源吗?

为什么其他方式不行?

内联、把脚本放到最底部、使用defer或者async这些方法都没有完成先让页面加载,然后在加载JS的目标,并且这些方式也确实不通用以及跨浏览器。

为什么这很重要?

这是因为Google把页面的加载速度作为排名的一个因素,也因为用户想要更快的加载页面。这对你的移动端SEO也大有益处。Google是从它被调用时开始到页面初始化加载完成来测量你的页面加载速度。这也意味着你需要让页面的loadrrreee

このスクリプトは何をしますか?

このコードは、ドキュメントが完全にロードされるまで待ってから、外部ファイル「defer.js」をロードすることを示しています。

詳しい手順

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

2. コードを HTML ドキュメントの </body> タグの前に貼り付けます

キーポイント

最も重要なポイントは次のとおりですできるだけ早くユーザーにコンテンツを提示します。一部のスクリプトは視覚的なコンテンツの下で処理を行うため、JavaScript の処理方法ではそのようなことは行っていません。ページの下部がどれほどクールであっても、ユーザーがページの下部までスクロールしないのであれば、ページの下部をクールにするスクリプトをロードする理由はありません。

ツール

JavaScript使用ツールを使用して、ページでJavaScriptがどのように使用されているかをテストします。


補足拡張

1. defer と async

どちらの属性もページ最適化の目的で使用できますが、違いは何ですか? 1 枚の写真で答えがわかります:

2. 折りたたまずに

wordstream の定義によると:

折りたたまずに は、Web ページの領域を指します。スクロール。

Below the fold是指网页中只有滚动才可见的区域。

Above the Fold指不需滚动页面就可见的内容区域。

一般而言,不需滚动就展示在屏幕中的内容会接受更多的注意力,需要滚动才可见的内容受到较低的关注。foldAbove the Fold は、ページをスクロールせずに表示されるコンテンツ領域を指します。

一般的に、スクロールせずに画面に表示されるコンテンツはより多くの注目を集めますが、スクロールして表示する必要があるコンテンツはあまり注目されません。 foldビューはニュース出版業界からのものです。

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

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 クエリの問題が発生する可能性があります。このような中で

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

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

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