2016-03-21 7 views
2

以下の解析フェーズで、document.ready()はいつ呼び出されますか?

enter image description here $ document.ready()はいつ実行されますか?コードは$(ドキュメント).ready(内部に含まHTMLがロードされたときにDOM /ドキュメントオブジェクトモデルがロードされる

+0

でsoruceを参照してください。 – DinoMyte

+0

「インタラクティブフェーズ」の冒頭に – dandavis

+0

overexchangeは分かりましたか? – amanuel2

答えて

5

シンプルanwser ...

Docs

は)のみページ一度実行されます DOM(Document Object Model)は、JavaScriptコードを実行する準備ができています。


私もここでそれをうまく説明:

私が言った

https://discuss.codecademy.com/t/window-onload-vs-document-ready/19000

:HTMLは、すべての準備ができたときに

jQueryのdocument.readyがあなたのコードを実行します画像やその他のリソースが終了する前に表示されます。これはJavaScriptを使用してDOMを変更できるようになる可能性が最も早いため、広く使用されています。現代のブラウザでは、Google Chromeのように、それはDOMContentLoaded3に置き換えられます。もう一度詳しい情報はこちら。

だからあなたの絵によって: enter image description here

ドムのロードが "完了" したときの$ document.ready(FN)は、インタラクティブ顔のbegginingにロードされます...

0

ん$ document.ready()は実行されますか? jQuery
説明:DOMが完全にロードされたときに実行する関数を指定し

.ready()は複数回

.ready(handler)
戻りを実行することができます。

DOMが初期化された後に.ready()が呼び出された場合、新しい ハンドラがすぐに実行されます。

.ready()メソッドは、現在のドキュメント と一致するjQueryオブジェクトに対してのみ呼び出すことができるため、セレクタは省略できます。

n = -1; 
 

 
function ready() { 
 
    document.getElementsByTagName("p")[0].textContent += "ready " + ++n + "\n"; 
 
} 
 

 
$(document).ready(ready); 
 

 
$(document).ready(function() { 
 
    ready(); 
 
    $(document).ready([function() { 
 
    ready() 
 
    }, 
 
    function() { 
 
     $(document).ready(function() { 
 
     ready(); 
 
     $(document).ready([ 
 
      function() { 
 
      ready() 
 
      }, function() { 
 
      ready() 
 
      if (n === 5) $(document).ready(function() {ready()}) 
 
     }]); 
 
     
 
     }) 
 
    } 
 
    ]) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 

 
<body> 
 
    <p></p> 
 
</body>

DOMがロードされるときready.js

if (document.readyState === "complete" || 
    (document.readyState !== "loading" && !document.documentElement.doScroll)) { 

    // Handle it asynchronously to allow scripts the opportunity to delay ready 
    window.setTimeout(jQuery.ready); 

} else { 

    // Use the handy event callback 
    document.addEventListener("DOMContentLoaded", completed); 

    // A fallback to window.onload, that will always work 
    window.addEventListener("load", completed); 
} 
関連する問題