$(window).load()与$(document).ready()的区别

1.执行时间不同:从字面的意思上理解,$(document).ready()就是文档准备好了。也就是浏览器已经解析完整个html文档,dom树已经建立起来了,这时就可以通过class属性或者id属性等等对dom进行操作等。而$(window).load()就是整个页面已经加载完毕。与前者的区别是dom树虽然已经建立起来了,但页面不一定加载完毕,如一些大的图片等,加载完成就需要一定的时间;但是页面加载完毕后,dom肯定也就建立起来了;但是有些文字或者图片链接等需要在文档加载完毕前,dom树建立后就进行的,这时就要用到$(document).ready()了。

2.可以被执行的次数不同:$(document).ready()可以在JavaScript代码中出现多次,并且里面的函数或者代码都可以得到执行;而$(window).load()只能在JavaScript代码中出现一次,如果有多个$(window).load(),那么只有最后一个$(window).load()里面的函数或者代码才会执行,之前的$(window).load()都将被覆盖;

Js代码

<script>  
$(document).ready(function(){  
alert("test1");//这段代码会被执行 
});  
$(document).ready(function(){  
alert("test2");//这段代码会被执行 
});  
$(window).load(function(){  
alert("test1");//这段代码不会被执行 
});  
$(window).load(function(){  
alert("test2");//这段代码将被执行 
});  
</script>  

3.执行的效率不同:如要在dom的元素节点中添加onclick属性节点,这时用$(document).ready()就要比用$(window).load()的效率高;但是在某些时候还必须得用$(window).load()才行,如之前写的app下载,如果要关闭这个下载框,则必须要在整个下载框加载完毕后,才能点击关闭图标,对app下载框执行隐藏。

Java代码

<script>  
$(document).ready(function(){  
$(".the_body a").attr("onclick","alert('test')");  
});  
$(window).load(function(){  
$(".close_btn").click(function(){  
$("#app_down").hide();  
});  
});  
</script>  

另外,$(document).ready()还有多种形式的写法,有$().ready( function(){} ); 有$(document).ready( function(){});还有$(function(){}).

原文发布于微信公众号 - java达人(drjava)

原文发表时间:2015-06-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的知识天地

如何用 Python 爬取需要登录的网站?

最近我必须执行一项从一个需要登录的网站上爬取一些网页的操作。它没有我想象中那么简单,因此我决定为它写一个辅助教程。

2342
来自专栏大闲人柴毛毛

linux软件安装(一)——源码安装

Linux软件简介 Linux上几乎所有的软件都经过了GPL授权,因此几乎所有的软件都会提供源码。 而一个软件要在Linux上执行,必须是二进制文件,因此...

3704
来自专栏娱乐心理测试

你知道这个小技巧吗?

974
来自专栏流柯技术学院

VMware安装CentOS时,无法以图形界面安装解决办法

4222
来自专栏技术之路

QT 智能提示设置

qt5.0的智能提示设置 qt默认的是Ctrl+空格 但这个是切换输入法,用着也不习惯 修改的地方是 工具-》选项-》环境 键盘选项把CompleteThis修...

19510
来自专栏程序员的碎碎念

微信小程序二维码实例开发

开始 小编初学微信小程序,想做一个二维码生成器;作为一个小白,踩了不少坑,在这里分享给大家“如何在微信小程序上生成二维码”。 步骤 就像写前端代码一样,html...

5515
来自专栏liulun

【JAVA WEB教程】jsp环境搭建+部署网站(eclipse+tomcat)【详细+图文】

下载tomcat7.X ? 下载地址为:http://tomcat.apache.org/download-70.cgi 下载完成之后就开始安装 ? Next ...

7968
来自专栏weixuqin 的专栏

Django 项目重命名

  在日常学习工作过程中,我们难免需要复用以前的项目,这里讲下复用 Django 项目并重命名的过程。

1441
来自专栏Play & Scala 技术分享

如何清除Chrome浏览器301缓存?

50711
来自专栏python学习之旅

Python+Selenium笔记(十六)屏幕截图

 (一) 方法 方法 简单说明 save_screenshot(filename) 获取当前屏幕截图并保存为指定文件 fi...

3867

扫码关注云+社区

领取腾讯云代金券