页面加载完成后,执行JS中方法的几种方式及顺序

在原生js和jquery使用中,经常涉及到页面加载完成后执行js中的某一方法。

通过整理,大概是五种方式(其中有的只是书写方式不一样):

  1. 使用jQuery的$(function){};
  2. 使用jquery的$(document).ready(function(){});
  3. 使用jQuery的$(window).load(function(){});
  4. 使用window.onload = function(){}
  5. 在标签上静态绑定onload事件,<body οnlοad="bodyIsReady()">等待body加载完成,就会执行bodyIsReady()方法。

异同点:

    第1种和第2种本质上没有区别,第1种是第2种的简写方式。两个是document加载完成后就执行方法。

    第3种和第4种都是等到整个window加载完成执行方法体。两者也没有区别,只是第四种使用dom对象,第三种使用jQuery对象。

那么,这五种方式,执行的先后顺序是怎么样的呢?

    通过下方代码验证发现:

function bodyIsReady () {
  console.log('body标签内onload 方式执行')
}

$(window).load(function () {
  console.log('$(window).load(function(){}) 方式执行')
})

window.onload = function () {
  console.log('window.onload 方式执行')
}

$(document).ready(function () {
  console.log('$(document).ready(function(){}) 方式执行')
})

$(function () {
  console.log('$(function(){}) 方式执行')
})

    运行结果:

    

    第1种:jQuery的$(function){}和第2种:jquery的$(document).ready(function(){});无论位置放置在哪里,总是优先其余三种方式(原因是:这两种方式是在document加载完成后就执行,后三种是等到整个window页面加载完成后才执行),这两者之间的执行顺序是谁在上方谁优先执行。

    第4种:window.onload = function(){}和第5种:<body οnlοad="bodyIsReady()">这两种方式,总是优先于第3种:jQuery的$(window).load(function(){})执行。

    注意:第4种:window.onload = function(){}会覆盖第5种:<body οnlοad="bodyIsReady()">方式,即使用第四种方式,第五种方式就会失效。因此,上图的运行结果中没有<body οnlοad="bodyIsReady()">方式的运行结果。

    第3种:jQuery的$(window).load(function(){})总是最后执行。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值