jQuery为啥要提供一个load()方法?

上午的时候,找个闲暇事件整理之前整理的一些关于jQuery的东西,看到了一个之前做的jQuery的$(document).ready()与window.onload()方法的比较。上面两个方法最重要的区别在于:$(document).ready()的触发实际是HTML的这棵DOM树建建立的时候,就触发了这个ready()函数的执行,但是windows.onload()方法则是在DOM树建立之后,并且DOM中带有URL属性的元素都被加载到本地之后,才会去执行。

说的简单一点,就是一个页面加载分成三个步骤:

1)浏览器接收到纯文本的HTML

2)HTML根据XHTML的规则,将其解析成为一个DOM树

3)浏览器遍历DOM中带有再次请求信息的节点,例如image,通过这些节点上的信息,将远程的资源获取到本地(或者是从cache中获取)

然后,经过浏览器的解析之后,你看到的就是整个页面了。

其中,$(document).ready()方法的触发时机是在第二步结束,而window.onload()方法的出发时机则是在第三步结束之后。

联想到一个问题,如果我需要在document.ready()方法中,获取图像的大小应该怎么办呢?因为ready()方法的触发时机被人为的提前了,带来了很多好处,但是也必然存在类似这样的弊端。jQuery还是考虑到了这样的情况,并且做了相应的解决方案,在他的文档里面,有一个load()方法,就是用来解决这样的问题。直接把代码copy上来吧,注意onload方法适用于下面几个对象:images、frames、scripts、window对象。

<span style="font-family:KaiTi_GB2312;font-size:14px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
	<head>
		<script type="text/javascript" src="jquery-1.3.1.js"></script>
		<script type="text/javascript">
			$(function(){
				$("#image").load(function(){
					alert($("#image").width());
				});
			})
		</script>
	</head>
	<body>
		<select multiple="multiple">
			<option value="1">Oracle</option>
			<option value="2">Java</option>
			<option value="3">C++</option>
		</select>
		<img id="image"
		src="http://t1.baidu.com/it/u=2624739849,4151443416&fm=32&picname=8441c36b01d987e6ca8054e6d69615f8.jpg">
	</body>
</html>
</span>

这就是jQuery提供了load()方法的主要考虑了。

jQuery为啥要提供一个load()方法?

时间: 2024-08-04 23:16:43

jQuery为啥要提供一个load()方法?的相关文章

黑马day18 jquery高级特性&amp;Ajax的load方法

介绍jquery中的load方法: (1).前面没有jquery.修饰,可以推断出他是一个普通的非全局函数(也就是说是一个局部函数):$.,$().,jquery.等修饰的就是全局函数,没有这些修饰的就是局部函数. (2).$(expr).load(url,data,callback); url:请求路径,绝对路径或者相对路径都可以. data: 请求参数,格式必须是key/value格式(json格式) callback:回调函数.function(data,textStatus,XMLHtt

Hibernate 中 load() 方法导致的 noSession 异常

之所以要写这个,是因为最近碰到了一个延迟加载的 load() 导致出现 noSession 的异常. 解决这个问题需要用到一个本地线程的对象,也就是 ThreadLocal 类,之前写过关于这个对象,可以看这个博客[本地线程 ThreadLocal 类] 我在数据层中封装了一个 load() 方法,根据用户 Id 获取用户对象: public UserModel get(Long uuid) { return this.getHibernateTemplate().load(UserModel.

在ASP.NET MVC中使用jQuery的Load方法加载静态页面的一个注意点

使用使用jQuery的Load方法可以加载静态页面,本篇就在ASP.NET MVC下实现. Model先行: public class Article { public int Id { get; set; } public string Url { get; set; } } 在HomeController中的Index方法,向视图传递一个Article强类型. public class HomeController : Controller { public ActionResult Ind

jQuery教程 - Ajax之load()方法

jQuery教程 - Ajax之load()方法 标签: jqueryajaxxmlhttprequesthtmlcallback 2009-10-05 14:54 3700人阅读 评论(3) 收藏 举报  分类: jQuery(7)  版权声明:本文为博主原创文章,未经博主允许不得转载. jQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第2层是laod().$.get()和$.post()方法,第3层是$.getScript()和$.getJSON(

jQuery load()方法用法集锦!

调用load方法的完整格式是:load( url, [data], [callback] ),其中 url:是指要导入文件的地址. data:可选参数:因为Load不仅仅可以导入静态的html文件,还可以导入动态脚本,例如PHP文件,所以要导入的是动态文件时,我们可以把要传递的参数放在这里. callback:可选参数:是指调用load方法并得到服务器响应后,再执行的另外一个函数. 一:如何使用data 1.加载一个php文件,该php文件不含传递参数 $("#myID").load(

jquery 实践操作:load()方法

最近决定总结下实际项目中的 JS 相关的一些操作,因此开启此系列,记录使用过程中用到的一些实用操作问题和解决方法,给自己一份记录. jquery load方法是对jQuery.ajax()进行封装以方便我们使用的一个方法,当我们需要处理较为复杂的逻辑时候,还是需要用到jQuery.ajax()这个比较全面的方法的. load() 方法: 完整语法格式:load( url, [data], [callback] ) /*参数:url是指要导入文件的地址. data:可选参数:因为load不仅仅可以

jQuery AJAX load() 方法

jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector).load(URL,data,callback); 必需的 URL 参数规定您希望加载的 URL. 可选的 data 参数规定与请求一同发送的查询字符串键/值对集合. 可选的 callback 参数是 load() 方法完成后所执行的函数名称. 这是示例文件("demo_test.txt")

JavaScript教程之jQuery - AJAX load() 方法

jQuery - AJAX load() 方法 jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector).load(URL,data,callback); 必需的 URL 参数规定您希望加载的 URL. 可选的 data 参数规定与请求一同发送的查询字符串键/值对集合. 可选的 callback 参数是 load() 方法完成后所执行的函数名称. 这是示例

jQuery提供的小方法

jQuery提供的小方法: 1.选择器 + 事件 + 函数 = 复杂的交互 2.循环处理与选择器匹配的各个元素:each() $("#").each(function(){ $(this).unblind('click'); }); 3.隐藏:hide():显示:show(): 4.向上滑动并消失:slideUp():     slideDown(): slideToggle();为动作指示“如果原来朝上,就向下滑动:如果原来朝下,就向上滑动”: 5.淡出:fadeOut():淡入fa