onload事件属性,JQ中的load,ready方法
onload事件属性,JQ中的load,ready方法
前言
页面中的很多操作,需要我们在所需资源下载完成后,才可以进行操作,而资源没有及时下载,我们进行操作的话,是会报错。因此我们需要熟练掌握哪些事件可以帮助我们在资源准备就绪后,再开始进行相关的操作。接下来我们就原生JS的事件属性onload,JQ中的load,ready方法进行一些讨论。
onload
HTML onload事件属性,常用在<body>中,一旦完全加载所有内容(包括图像,脚本文件,CSS文件等),就执行一段脚本。
以下内容是参考了《锋利的Jquery》一书,感兴趣的朋友也可以去原书了解.
window.onload的执行时机:必须等待网友中所有的内容加载完毕后(包括图片)才能执行。
编写个数: 不能同时编写多个
window.onload = function() {
alert(" test1 ");
};
window.onload = function() {
alert(" test2 ");
};
结果只会输出“test2”。
特别注意: 像onload事件之类的使用匿名函数,即window.onload = function() { fnc(); //这里执行函数};这种形式的才是在页面加载完成后执行。
另外使用DOM0级的方式是可以编写多个的。例如:
<body onload="a();b()">
// 代码
</body>
不推荐这么写吧。
onload事件属性存在用户体验的问题,如果当需要下载的资源很大时,需要用户等待很长的时间。
JQ的ready()方法
通过这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,可以极大地提高web应用程序的响应速度。
$(document).ready()执行的时机:网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有加载完.
编写个数:能同时编写多个,比如:
$(document).ready(function() {
alert("Hello world");
});
$(document).ready(function() {
alert("Hello world");
});
结果两次都输出。同一个页面可以无限次使用$(document).ready()事件,其中注册的函数会按照(代码中的)先后顺序依次执行
简写方式:
$(function() {
//代码
});
更详细的介绍,可以看《锋利的Jquery》一书,第四章4.1.1
JQ中的load()方法
但是比如我们需要对图片进行剪切,缩放操作时,需要网页所有的内容加载完毕后才执行的话,可以使用$(window).load()方法,这个方法会等到页面所有内容加载完毕后才会触发,并且同时没有onload事件属性的缺点。
$(window).load(function() {
alert("test1");
});
$(window).load(function() {
alert("test2");
});
代码会在页面所有内容加载完成后按照先后顺序执行。
《锋利的Jquery》中4.1.1中的描述如下:
另外需要注意一点,由于在$(document).ready()方法内注册的事件,只要DOM就绪就会被执行,因此可能此时元素的关联文件未下载完。例如与图片有关的HTML下载完毕,并且已经解析为DOM树了,但很可能图片还未加载完毕,所有例如图片的高度和宽度这样的属性此时不一定有效。要解决这个问题,可以使用jQuery中另一个页面加载的方法--load()方法。load()方法会在元素的onload事件中绑定一个处理函数。如果处理函数绑定给window对象,则会在所有内容(包括窗口,框架,对象和图像等)加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。
补充说明下,JQ中有两个load()方法,一个是JQuery事件load()方法,一个是JQuery Ajax load()方法.
具体调用哪个函数,根据参数而定。
JQuery事件load()方法:
$("img").load(function() {
$("div").text("图像已加载");
});
在图像加载完成后,输出“图像已加载”;
JQuery Ajax load()方法:
load() 方法通过 AJAX 请求从服务器加载数据,并把返回的数据放置到指定的元素中。
$("button").click(function() {
$("div").load("demo_ajax_load.txt");
});
通过AJAX请求来改变div元素的文本。
onload事件属性,JQ中的load,ready方法的更多相关文章
- JQ中$(window).load和$(document).ready区别与执行顺序
JQ中的$(document).ready()大家应该用的非常多,等同于$(function(){}),基本每个JS脚本中都有这个函数的出现有时甚至会出现多个,那么另一个加载函数$(window).l ...
- [转]JQ中$(window).load和$(document).ready区别与执行顺序
一.$(window).load().window.onload=function(){}和$(document).ready()方法的区别 1.$(window).load() 和window.on ...
- body中的onload()函数和jQuery中的document.ready()有什么区别?
1.我们可以在页面中使用多个document.ready(),但只能使用一次onload(). 2.document.ready()函数在页面DOM元素加载完以后就会被调用,而onload()函数则要 ...
- mouse事件在JQ中的应用(在动画与交互中用得比较多).
mousedown与mouseup事件 用户交互操作中,最简单直接的操作就是点击操作,因此jQuery提供了一个mousedown的快捷方法可以监听用户鼠标按下的操作,与其对应的还有一个方法mouse ...
- paper 3:matlab中save,load使用方法小结
功能描述]存储文件[软件界面]MATLAB->File->Save Workspace As将变量存入硬盘中指定路径.[函数用法] save:该函数将所有workspace中变量用二进制格 ...
- js进阶 10-3 jquery中为什么用document.ready方法
js进阶 10-3 jquery中为什么用document.ready方法 一.总结 一句话总结: 1.document.ready和window.onload的区别:用哪个好? document. ...
- 【XSS】利用 onload 事件监控流量劫持
说到跨站资源监控,首先会联想到『Content Security Policy』.既然 CSP 好用,我们何必自己再搞一套呢.那就先来吐槽下 CSP 的缺陷. 目前的 CSP 日志不详细 用过 CSP ...
- jq方法中 $(window).load() 与 $(document).ready() 的区别
通过自学进入了前端的行列,只知道在js中,一开头就写一个: window.onload = function(){ //doing sth} 然后所有的乱七八糟的代码全塞里面,大概知道window.o ...
- $(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法
$(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法接触JQuery一般最先学到的是何时启动事件.在曾经很长一段时间里,在页面载入后引发的事件 ...
随机推荐
- 使用PHP类TCPDF生成PDF文档
转自:http://www.blhere.com/1180.html 这两天遇到一个项目中,需要php自动处理生成pdf文档.在网上找了好几个类,最后决定使用TCPDF,使用的时候真是发现这个类真是强 ...
- kubernetes1.4新特性:支持Docker新特性
(一)背景资料 在Kubernetes1.2中这个第三方组件就是go-dockerclient,这是一个GO语言写的docker客户端,支持Dockerremote API,这个项目在https:// ...
- hdu5444 乱搞 长春网赛
可以暴力. #include<iostream> #include<cstring> #define maxn 1100 using namespace std; int a[ ...
- C++模板相关知识点总结
1:在 C++ 中,模板是泛型编程的基础.模板是创建类或函数的蓝图或公式. 2:模板定义以关键字 template 开始,后接模板形参表,模板形参表是用尖括号括住的一个或多个模板形参的列表,形参之间以 ...
- hdu 2196【树形dp】
http://acm.hdu.edu.cn/showproblem.php?pid=2196 题意:找出树中每个节点到其它点的最远距离. 题解: 首先这是一棵树,对于节点v来说,它到达其它点的最远距离 ...
- spoj SUBLEX (Lexicographical Substring Search) RE的欢迎来看看
SPOJ.com - Problem SUBLEX 这么裸的一个SAM,放在了死破OJ上面就是个坑. 注意用SAM做的时候输出要用一个数组存下来,然后再puts,不然一个一个字符输出会更慢. 还有一个 ...
- HZOJ Blue
Blue: 贪心. 我们不妨给蛤定一个先后顺序,则贪心策略即从右至左每只蛤依次往最远的石子跳. 证明: 如果最右的蛤不往最远的石子跳,而是选择了一个较近的石子,那么必然会存在一个该蛤左边的蛤越过了它跳 ...
- uva 10253 Series-Parallel Networks (整数划分+多重集)
UVa Online Judge 题意是计算给定数量的边通过串联并联两种方式,能组成多少种不同的网络.将它转化为一个树形结构,也就是求有多少不同构的树. 代码如下: #include <cstd ...
- sublime 插件安装packagecontrol
https://packagecontrol.io/installation 第一步: Installation Simple The simplest method of installation ...
- H3C 网络号和主机号