1. 程式人生 > >js中頁面加載完成後執行的幾種方式及執行順序

js中頁面加載完成後執行的幾種方式及執行順序

class 事件 兩種 在哪裏 log 等待 沒有 cti 完成

1:使用jQuery的$(function){};

2:使用jquery的$(document).ready(function(){});前兩者本質上沒有區別,第1種是第2種的簡寫方式。兩個是document加載完成後就執行方法。

3:使用jQuery的$(window).load(function(){});

4:使用window.onload = function(){} 第3種和第4種都是等到整個window加載完成執行方法體。兩者也沒有區別,只是一個使用dom對象,一個使用jQuery對象。

5:在標簽上靜態綁定onload事件,<body onload="aaa()">等待body加載完成,就會執行aaa()方法。

那麽,這五種方式,執行的先後順序是怎麽樣的呢?

通過下方代碼驗證發現:

使用1:jQuery的$(function){}和2:jquery的$(document).ready(function(){});無論位置放置在哪裏,總是優先其余三種方式(原因是:這兩種方式是在document加載完成後就執行,後三種是等到整個window頁面加載完成後才執行),這兩者之間的執行順序是誰在上方誰優先執行。

使用3:jQuery的$(window).load(function(){});和4:window.onload = function bbb(){}這兩種方式,總是優先於<body onload="aaa()">執行。他們兩者執行順序也是根據誰在上方誰先執行。

使用5:<body onload="aaa()">總是最後執行。

重點到了!如果要對未來元素操作的話以上這些對IE瀏覽器是不管用的。要等未來元素加載完後再執行js的話,我們就要給個定時器達到延遲加載的效果:

$(window).load(function(){
  setTimeout(function(){
    console.log($(".tbody tr"))
    $(".tbody tr:odd").css("backgroundColor","#F5F6FA");
  },30)
});

  

js中頁面加載完成後執行的幾種方式及執行順序