ホームページ ウェブフロントエンド jsチュートリアル jquery $(document).ready() と window.onload_jquery の違い

jquery $(document).ready() と window.onload_jquery の違い

May 16, 2016 pm 06:38 PM
jquery

1. 実行時間

window.onload は、画像を含むページ内のすべての要素が読み込まれるまで、実行する前に待つ必要があります。
$(document).ready() は、DOM 構造が描画された後、ロードされるまで待つことなく実行されます。

2.書き込み回数が異なります

Window.onload は同時に複数のメソッドを書き込むことはできません。Window.Onload メソッドが複数ある場合、
は 1 つだけです。 $(document).ready() は同時に複数記述でき、すべて実行可能

3. 簡略化された書き方

window.onload
には簡略化された記述方法はありません。 $(document).ready(function(){}) は $(function(){});

と省略できます。

以前の開発では、通常 JavaScript を使用し、常に jquery モードを使用していました。つまり、最初の行は

です。

コードをコピーします コードは次のとおりです:

$(document).ready(function(){
...
});

現時点では、一部のメソッドを実行する前に、すべての js と画像がロードされるのを待つ必要はありませんが、場合によっては、すべての js と画像がロードされるまで待つ必要があります


すべての要素がロードされると、一部のメソッドが実行されます。たとえば、この時点で一部のボタンをクリックすると、予期しない状況が発生します。

使用する必要があるもの:

コードをコピーします コードは次のとおりです:
$(window).load(function() {
$("#btn-upload").click(function(){ //例:
アップロード写真();
});
});

以下は転載内容です、

body.onload()
の代わりに $(window).load(function(){...}) を使用するいくつかの理由 まず、ページのすべての要素 (HTML タグとすべての参照画像、Flash およびその他のメディアを含む) が読み込まれた後に実行されます。これが共通点です。
body.Onload() を使用しない理由 1:

複数の関数を同時にロードしたい場合は、次のように記述する必要があります

$(window).load() を使用すると、次のように複数の関数をロードできます。

コードをコピーします コードは次のとおりです:
$(window).load(function() {
alert("こんにちは、jQuery です!");
});
$(window).load(function() {
alert("こんにちは、私も jQuery");
});


このように書くと、これら 2 つの関数が上から下に実行され、見た目がさらに良くなります。

body.Onload() を使用しない理由 2:

body.Onload() を使用すると、js と html を完全に分離できません。これは非常に深刻な問題です。

さらに、$(window).load(function(){...}) と body.onload() を使用すると、同じ問題が発生します。最初に述べたように、両方ともコンテンツがすべて完了するまで待つ必要があるからです。のページが利用可能です

読み込み完了後に実行されますが、ネットワーク速度が比較的遅い場合、ページの読み込みに時間がかかることがよくあります(数秒から10秒以上、あるいはそれ以上…)。だから私たちはよく

ページが完全に読み込まれておらず、ユーザーがすでにページを操作している状況も考えられます。そのため、ページの効果は予想とは異なります。

そこで、ここでは、$(document).ready(function(){})、または $(function(){}) と略記することをお勧めします。これは、ページの DOM 要素が読み込まれた後に実行されるためです。

画像やその他のメディアがダウンロードされるのを待つ必要はありません。

しかし、実行したい関数を実行する前に、ページ上のすべてがロードされるまで待つ必要がある場合もあるので、$(window).load(function(){...}) または

を使用する必要がありますか?

$(function(){}) の使用には、特定のニーズに基づいて異なる選択が必要になることがよくあります。

最後に、すべての DOM 要素が読み込まれる前に実行される jQuery コードを添付します

コードをコピー コードは次のとおりです:

<スクリプトタイプ="text/javascript">
(関数() {
alert("DOM がまだロードされていません!");
})(jQuery)

はは、私たちにも時々このようなニーズがあるのです!

ドキュメントを読み込むブラウザを例に挙げます。ページが読み込まれた後、ブラウザは Javascript を通じて DOM 要素にイベントを追加します。通常の Javascript コードでは通常 window.onload メソッドが使用されますが、Jquery では $(document).ready() メソッドが使用されます。 $(document).ready() メソッドはイベント モジュールの最も重要な関数であり、Web アプリケーションの速度を大幅に向上させることができます。

window.load $(document).ready()
実行のタイミング: 実行前に、Web ページ内のすべてのコンテンツ (画像を含む) がロードされるまで待つ必要があります。DOM 要素に関連付けられたコンテンツがロードされていない可能性があります。
書き込み項目数 同時に複数の
を書き込むことはできません 次のコードは正しく実行されません:

window.onload = function(){ 
  alert(“text1”); 
}; 
window.onload = function(){ 
  alert(“text2”); 
}; 
ログイン後にコピー


2 番目の結果のみが出力されます。複数の
を同時に書き込むことができます。 次のコードは正しく実行されます:

$(document).ready(function(){ 
  alert(“Hello World”); 
}); 
$(document).ready(function(){ 
  alert(“Hello again”); 
}); 
ログイン後にコピー

結果が 2 回出力されます
簡略化された記述 なし

 $(function(){ 
  // do something 
}); 
ログイン後にコピー

また、$(document).ready() メソッドに登録されたイベントは DOM の準備ができている限り実行されるため、この時点では要素の関連ファイルがダウンロードされない可能性があることに注意してください。 。たとえば、画像に関連する HTML はダウンロードされ、DOM ツリーに解析されていますが、画像はまだロードされていない可能性が高いため、この時点では画像の高さや幅などの属性が有効ではない可能性があります。時間。この問題を解決するには、Jquery の別のページ読み込みメソッド、load() メソッドを使用します。 Load() メソッドは、ハンドラー関数を要素の onload イベントにバインドします。ハンドラー関数がウィンドウ オブジェクトにバインドされている場合、ハンドラー関数はすべてのコンテンツ (ウィンドウ、フレーム、オブジェクト、画像などを含む) がロードされた後にトリガーされます。ハンドラー関数が要素にバインドされている場合は、要素のコンテンツがロードされます。
JQuery コードは次のとおりです:
$(window).load(function (){
//コードを書きます
}); JavaScript の次のコードと同等
Window.onload = function (){
//コードを書きます
}

————————————————————————————

最近、フレームに埋め込まれたページを変更したとき、効果として jquery を使用しましたが、ページ自体も onload イベントにバインドされました。修正後、テストは Firefox では正常にスムーズに実行されますが、IE では jquery 効果が表示されるまでに 10 秒以上かかり、ニッコウキスゲは寒いです。

最初は、onload メソッドと競合しているのではないかと思いました。インターネットでは、$(document).ready() はページの DOM 解析が完了した後に実行され、onload イベントはすべてのリソースが準備された後に実行される、つまり $(document).ready() が実行されるとよく​​言われます。ページの DOM 解析が完了した後、onload 前に実行されます。特にページのピクチャが大きくなるほど、時間差が大きくなる可能性があります。しかし、私のページでは、画像は10秒以上表示されていますが、jquery効果はまだ表示されていません。

onload ローディング メソッドを削除してみますが、結果は同じです。元の onload イベント バインディングを記述するために $(document).ready() を使用する必要はないようです。では、Firefox は動作するのに IE は動作する理由は何でしょうか?その後デバッグを行ったところ、IE では元々バインドされていた onload メソッドが $(document).ready() のコンテンツの前に実行されるのに対し、Firefox では $(document).ready() のコンテンツが最初に実行されてから、元の onload メソッドが実行されることがわかりました。方法。 。これはネット上で言われていることと完全に一致しているわけではないようですが、興味深いですね。

jquery のソース コードを調べて、$(document).ready() がどのように実装されているかを確認します。

if ( jQuery.browser.msie && window == top ) (function(){ 
if (jQuery.isReady) return; 
try { 
document.documentElement.doScroll("left"); 
} catch( error ) { 
      setTimeout( arguments.callee, 0 ); 
       return; 
    } 
   // and execute any waiting functions 
   jQuery.ready(); 
})(); 
jQuery.event.add( window, "load", jQuery.ready ); 
ログイン後にコピー

結果は非常に明らかです。ページがフレームに埋め込まれていない場合に限り、IE は Firefox と同様に、最初に $(document).ready() のコンテンツを実行し、次に元の onload メソッドを実行します。フレームに埋め込まれたページの場合は、load イベントにバインドされて実行されるだけなので、当然、元の onload バインド メソッドが実行された後の順番になります。そして、このページにはテスト環境ではアクセスできないリソースがたまたまあり、10 秒以上の遅延はまさにそれが増幅する時間差です。

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

jQueryのリファレンスメソッドを詳しく解説:クイックスタートガイド jQueryのリファレンスメソッドを詳しく解説:クイックスタートガイド Feb 27, 2024 pm 06:45 PM

jQuery 参照方法の詳細説明: クイック スタート ガイド jQuery は、Web サイト開発で広く使用されている人気のある JavaScript ライブラリであり、JavaScript プログラミングを簡素化し、開発者に豊富な機能を提供します。この記事では、jQuery の参照方法を詳しく紹介し、読者がすぐに使い始めるのに役立つ具体的なコード例を示します。 jQuery の導入 まず、HTML ファイルに jQuery ライブラリを導入する必要があります。 CDN リンクを通じて導入することも、ダウンロードすることもできます

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? Feb 28, 2024 pm 03:12 PM

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常​​、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

jQueryで要素の高さ属性を削除するにはどうすればよいですか? jQueryで要素の高さ属性を削除するにはどうすればよいですか? Feb 28, 2024 am 08:39 AM

jQueryで要素の高さ属性を削除するにはどうすればよいですか?フロントエンド開発では、要素の高さ属性を操作する必要が生じることがよくあります。要素の高さを動的に変更する必要がある場合や、要素の高さ属性を削除する必要がある場合があります。この記事では、jQuery を使用して要素の高さ属性を削除する方法と、具体的なコード例を紹介します。 jQuery を使用して高さ属性を操作する前に、まず CSS の高さ属性を理解する必要があります。 height 属性は要素の高さを設定するために使用されます

jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する Feb 28, 2024 pm 09:06 PM

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: &lt

徹底した分析: jQuery の長所と短所 徹底した分析: jQuery の長所と短所 Feb 27, 2024 pm 05:18 PM

jQuery は、フロントエンド開発で広く使用されている高速、小型、機能豊富な JavaScript ライブラリです。 2006 年のリリース以来、jQuery は多くの開発者にとって最適なツールの 1 つとなっていますが、実際のアプリケーションでは、いくつかの利点と欠点もあります。この記事では、jQuery の長所と短所を詳しく分析し、具体的なコード例で説明します。利点: 1. 簡潔な構文 jQuery の構文設計は簡潔かつ明確であるため、コードの読みやすさと記述効率が大幅に向上します。例えば、

jQuery を使用してすべての a タグのテキスト コンテンツを変更する jQuery を使用してすべての a タグのテキスト コンテンツを変更する Feb 28, 2024 pm 05:42 PM

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? Feb 29, 2024 am 09:03 AM

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery を使用して DOM 要素を操作する場合、要素に特定の属性があるかどうかを判断する必要がある状況がよく発生します。この場合、jQuery が提供するメソッドを使用してこの関数を簡単に実装できます。以下では、jQuery 要素が特定の属性を持つかどうかを判断するために一般的に使用される 2 つの方法を紹介し、具体的なコード例を添付します。方法 1: attr() メソッドと typeof 演算子 // を使用して、要素に特定の属性があるかどうかを判断します

jQuery における eq の役割と応用シナリオを理解する jQuery における eq の役割と応用シナリオを理解する Feb 28, 2024 pm 01:15 PM

jQuery は、Web ページでの DOM 操作やイベント処理を処理するために広く使用されている人気のある JavaScript ライブラリです。 jQueryではeq()メソッドを利用して指定したインデックス位置の要素を選択しますが、具体的な使い方と応用シーンは以下の通りです。 jQuery では、 eq() メソッドは、指定されたインデックス位置にある要素を選択します。インデックス位置は 0 からカウントされます。つまり、最初の要素のインデックスは 0、2 番目の要素のインデックスは 1 などとなります。 eq() メソッドの構文は次のとおりです。 $("s

See all articles