jQueryのreadyイベントとloadイベント
jQueryのreadyイベントとloadイベント(MOOC.comより)
jQueryにはドキュメントをロードするための3つのメソッドがあります
$(document).ready(function() { // ...code... }) // ドキュメントの準備ができました略語 $(function() { // ...code... }) $(document).load(function() { // ...code... })
1 つは準備ができており、もう 1 つは準備完了です負荷、この2つの違いは何ですか?
ready とload のどちらが最初に実行されますか:
面接プロセス中に、よく質問されます:ready とload のどちらが最初に実行され、どちらが最後に実行されますか?答えは、ready が最初に実行され、load が後で実行されるということです。
DOM ドキュメントの読み込み手順:
なぜ ready が最初に実行され、load が後で実行されるのかを理解するには、まず DOM ドキュメントの読み込み手順を理解する必要があります:
(1) HTML 構造を解析します。 (2) 外部スクリプトとスタイルシートファイルを読み込みます。 (3) スクリプトコードを解析して実行します。 (4) HTML DOM モデルを構築します。 //ready (5) 画像などの外部ファイルを読み込みます。 (6) ページがロードされます。 //load
上記の説明で、ready は手順 (4) が完了した後に実行されますが、load は手順 (6) が完了するまで実行されないことが理解できたと思います。
結論:
readyとloadの違いはリソースファイルのロードにあり、readyは基本的なDOM構造を構築するため、コードのロードは速いほど良いです。高速ブラウジングの時代では、誰も答えを待ちたくありません。 Web サイトのページの読み込みに 4 秒以上かかると、ユーザーの 4 分の 1 が失われることになるため、フレームワークではユーザー エクスペリエンスが非常に重要です。DOM を処理するのは早ければ早いほど良いのです。画像の場合は、すべてのリソースが読み込まれた後にのみフレームの読み込みを処理します。画像リソースが多すぎる場合、読み込みイベントは長時間トリガーされません。
jQuery がドキュメントの読み込みタイミングをどのように処理するかを見てみましょう:
jQuery.ready.PROmise = function( obj ) { if ( !readyList ) { readyList = jQuery.Deferred() if ( document.readyState === "; complete" ) { // 非同期的に処理して、スクリプトに遅延の機会を与えますready setTimeout( jQuery.ready ); } else { document.addEventListener( "DOMContentLoaded",, false ); window.addEventListener ("load", completed , false );
jQuery 互換性のための具体的な戦略をご覧ください: 高度なブラウザーの場合、現時点では DOMContentLoaded イベントを喜んで使用し、時間と労力を節約します。
では、古い IE はどうすればよいのでしょうか?
ブラウザーに document.onreadystatechange イベントがある場合、イベントがトリガーされた場合。 readyState=complete の場合、DOM ツリーはロードされていると見なされます。ただし、このイベントはあまり信頼性がありません。たとえば、ページに画像がある場合、onload イベントの後にトリガーされる可能性があります。つまり、ページにバイナリ リソースが含まれていない場合、またはバイナリ リソースがほとんど含まれていない場合にのみ正しく実行されます。バックアップとしてキャッシュされます。
Diego Perini は、doScroll メソッド呼び出しを使用して、IE がロードされているかどうかを検出する方法を 2007 年に報告しました。詳細については、http://Javascript.nwbox.com/IEContentLoaded/ を参照してください。
原則として、IE が非 iframe にあるときは、doScroll を実行できるかどうかによって DOM が読み込まれているかどうかを継続的に判断することしかできません。上記の間隔で 50 ミリ秒ごとに doScroll を実行してみてください。ページが読み込まれていないときに doScroll を呼び出すと例外が発生するため、例外をキャッチするために try -catch が使用されます。
結論: 一般に、ページ DOM がロードされていない場合、 doScroll メソッドが呼び出されたときに例外が生成されます。次に、それを逆に使用します。例外がなければ、ページ DOM はロードされています。
これは、最初の読み込み準備完了を処理する問題です。ページが読み込まれた後に準備完了になったらどうなるでしょうか。
jQuery は、この状況ではバインディングをスキップする必要があります:
if ( document.readyState === "complete" ) { // スクリプトに準備完了を遅らせる機会を許可するために、非同期的に処理します setTimeout( jQuery.ready ) }
決定ページの読み込みが完了したかどうかは、readyState のステータスを確認することで直接確認できます。ここでは、主に正しい実行を保証するために、最小時間後に実行するタイマーが与えられます。
上記は、jQuery の read イベントとload イベントの内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
