最近使用$(document).ready(function(){})遇到一个问题:加载页面后发送数据请求后台,得到的数据不对,后发现请求后台时,发送的数据为空,没有获取到值导致的。------改成window.onload = function(){}或者$(window).load(function(){})就可以了。现总结一下这一块的知识点。

如何选择$(document).ready()和window.onload请结合实际情况进行判断。

$(document).ready()和window.onload之间的区别:

1.执行时间

window.onload = function(){}  -------- 页面上所有的元素(包括图片,文件)加载完成之后执行,jquery的写法是$(window).load(function(){})

$(document).ready(function(){})  ------- 页面上DOM结构绘制完成之后执行,可以简写成$(function(){})。

页面会先执行$(document).ready(),然后执行window.onload。

2.执行次数

window.onload = function(){} ------ 只执行一次,如果定义多个时,只会执行最后一个定义的方法;如果想执行多个方法,可以使用$(window).load(function(){}) (会按照定义顺序执行)

$(document).ready(function(){}) ---- 可以执行多次,页面编写多个$(document).ready()方法时,按照定义顺序依次执行

<script>
window.onload = function(){
alert("onload11");
}
window.onload = function(){
alert("onload22");
}
$(window).load(function() {
alert("load11");
});
$(window).load(function() {
alert("load22");
});
$(document).ready(function() {
alert("ready22");
});
$(document).ready(function() {
alert("ready11");
});
</script>

弹出的顺序为   ready22  ----->  ready11  ----->  onload22  ----->  load11 ----->  load22

随机推荐

  1. 体验mssql-cli

    1. 背景 安装SQL Server on Linux之后,在命令行下使用sqlcmd,你会发现代码提示,语法高亮,甚至连多行复制都不支持,相比之下,MySQL的命令行客户端还好用多了.只做简单的命令 ...

  2. 【java设计模式】【结构模式Structural Pattern】装饰模式Decorator Pattern

    public class Client { public static void main(String[] args) { Component component=new ConcreteCompo ...

  3. 关于Sublime Text编辑器的实用技巧

    本文转载至一篇博文,为您提供Sublime Text编辑器的12个技巧和诀窍,深入挖掘这个看似简洁的代码编辑器,背后所隐藏的实现各种高级功能的无限可能. 1) 选择 以下是一些Sublime Text ...

  4. Charles 抓包工具使用部分问题总结

    一. You may need to configure your browser or application to trust the Charles Root Certificate. See ...

  5. iOS 用户密码 数字字母特殊符号设置 判断

    //直接调用这个方法就行 -(int)checkIsHaveNumAndLetter:(NSString*)password{ //数字条件 NSRegularExpression *tNumRegu ...

  6. 利用VSTS跟Kubernetes进行CI/CD

    准备VSTS管理环境 首先我们需要到www.visualstudio.com下申请好的VSTS账号,然后在账号下创建一个用Git作为代码管理的项目 创建好项目后我们就可以利用git clone将代码库 ...

  7. 1、opencv-2.4.7.2的安装和vs2010的配置

    参考大牛们的资料,动手操作了一遍,不算太复杂,和vs2008不同,有几点需要注意,cv2.4.7.2版本没有vc9,所以无法在2008上使用(呵呵,我瞎猜的) 1.下载安装 下载http://sour ...

  8. css3特效样式库

    直接调用样式类即可: /* animation */ .a-bounce,.a-flip,.a-flash,.a-shake,.a-swing,.a-wobble,.a-ring{-webkit-an ...

  9. thinkphp3.2.3的使用心得(零)

    从模板传参到控制器 模板中代码: <volist name="list" id="vo"> <a href="__CONTROLLE ...

  10. webpack3.x基本配置与总结

    基本配置 1.开始之前,请确定你已经安装了当前 Node 的较新版本. 2.然后在文件夹根目录下执行以下命令初始化项目并全局安装webpack: 1.$ cnpm init // 初始化项目 2.$ ...