ページ読み込み時にトリガするイベントと手順
5702 ワード
前言
ページ読み込み時には、大きく分けて以下のステップがあります. HTML文書構造の解析を開始する 外部スタイルテーブルおよびJavaScriptスクリプトをロードする 解析実行JavaScriptスクリプト DOMツリーレンダリング完了 未完成の外部リソース(画像など)をロードする ページ読み込み成功 その過程で、どのような一般的なイベントが発生しましたか?
document readystatechangeイベント
readyState 属性はドキュメントのロード状態を説明しています.ロード全体でdocument.readyStateは絶えず変化しています.毎回変化するたびにreadystatechangeイベントがトリガされます.
readyStateには以下の状態があります.
loading/ ローディング
インターアクティヴ/ インタラクティブドキュメントの読み込みが完了しました.ドキュメントは解析されましたが、画像、スタイルシート、フレームなどのサブリソースはまだロードされています.
complete/ Tドキュメントとすべてのサブリソースの読み込みが完了しました.状態表示
例えば、ステップ2の時に対応します. インターアクティヴ ステップ5の後にcompletteeに対応すると、readystatechangeイベントが発生します.
PS:ドキュメント、画像などの読み込み時のreadyStateと XMLHttpRequest.readyStateは違います.区分に注意してください
document DOMContentLoaded事件
DOMツリーレンダリングが完了すると、DOMContentLoadedイベントがトリガされ、外部リソースがまだロードされている可能性があります.jqueryのreadyイベントは同じ効果です.
ウィンドロード事件
すべてのリソースが全部ロードされたらWindowsのロードイベントが発生します.
doucmentのロードイベントはトリガできませんが、MDNではこのイベントがありますか?大神の指導を求めます!!
実例
reolve body JavaScript--> document interactive-> document DOMContent Loaded--> document complete--> window load
期待にぴったりです.したがって、ドキュメント構造の読み込みが完了するだけで実行できるスクリプトは、DOMContentLoadedを傍受することができます.すべての内容をロードして完成しなければいけないです.実行するスクリプトはwindow.onloadをモニターします. またはdocument.readyState=='complette'です.
転載先:https://www.cnblogs.com/shapeY/p/7662406.html
ページ読み込み時には、大きく分けて以下のステップがあります.
document readystatechangeイベント
readyState 属性はドキュメントのロード状態を説明しています.ロード全体でdocument.readyStateは絶えず変化しています.毎回変化するたびにreadystatechangeイベントがトリガされます.
readyStateには以下の状態があります.
loading/ ローディング
document
まだロード中ですインターアクティヴ/ インタラクティブドキュメントの読み込みが完了しました.ドキュメントは解析されましたが、画像、スタイルシート、フレームなどのサブリソースはまだロードされています.
complete/ Tドキュメントとすべてのサブリソースの読み込みが完了しました.状態表示
load
イベントがトリガされます.例えば、ステップ2の時に対応します. インターアクティヴ ステップ5の後にcompletteeに対応すると、readystatechangeイベントが発生します.
PS:ドキュメント、画像などの読み込み時のreadyStateと XMLHttpRequest.readyStateは違います.区分に注意してください
document DOMContentLoaded事件
DOMツリーレンダリングが完了すると、DOMContentLoadedイベントがトリガされ、外部リソースがまだロードされている可能性があります.jqueryのreadyイベントは同じ効果です.
ウィンドロード事件
すべてのリソースが全部ロードされたらWindowsのロードイベントが発生します.
doucmentのロードイベントはトリガできませんが、MDNではこのイベントがありますか?大神の指導を求めます!!
実例
<h1> , h1>
<img src="http://c.hiphotos.baidu.com/image/pic/item/09fa513d269759eea79bc50abbfb43166c22df2c.jpg" alt="">
<h1> , h1>
<img src="http://h.hiphotos.baidu.com/image/pic/item/279759ee3d6d55fb75ed26e764224f4a21a4ddcc.jpg" alt="">
<h1> , h1>
<script type="text/javascript">
console.log('resolve body JavaScript');
window.addEventListener('load',function(){
console.log('window load');
})
document.addEventListener('readystatechange',function(){
console.log('document ' + document.readyState);
})
document.addEventListener('DOMContentLoaded',function(){
console.log('document DOMContentLoaded');
})
//document load ??
document.addEventListener('load',function(){
console.log('document load');
})
script>
chromeでのログ出力は以下の通りです.reolve body JavaScript--> document interactive-> document DOMContent Loaded--> document complete--> window load
期待にぴったりです.したがって、ドキュメント構造の読み込みが完了するだけで実行できるスクリプトは、DOMContentLoadedを傍受することができます.すべての内容をロードして完成しなければいけないです.実行するスクリプトはwindow.onloadをモニターします. またはdocument.readyState=='complette'です.
転載先:https://www.cnblogs.com/shapeY/p/7662406.html