jQuery定义了一个高级工具方法和四个高级工具函数。
这些高级工具都基于同一个强大的底层函数:jQuery,ajax()
注:一个高级工具——load()
四个高级工具函数——jQuery.getScript(),jQuery.getJSON(),jQuery.get()和jQuery.post()
jQuery.getScript()加载并执行JavaScript代码文件,
jQuery.getJSON() 加载URL,并解析为JSON,并将解析结果传递到指定的回调函数中。这两个函数都会调用一个更通用的URL获取函数:jQuery.get()。
与load()方法一样,所有这些函数都是异步的:在任何数据加载前它们就会返回调用者,加载结果则通过调用指定的回调函数来通知。
load()方法
向它传入一个URL,它会异步加载该URL的内容。然后将内容插入每一个选中的元素中,替换掉已经存在的任何内容。
load方法接受的参数()
1.URL参数,必须。如果传给该方法的第一个参数是函数而不是字符串,那么load方法是事件处理程序注册方法,而不是Ajax方式。如果只想显示加载文档的一部分。可以在URL后面添加一个空格和一个jQuery选择器。例如
$("#temp"),load("weather_report.html #temperature");//URL后面的空格是必须的。
2.可选参数,表示数据,可追加到URL后面,或者与请求一起发送。
通常情况下,load()方法发送HTTP GET请求,凡是如果传入数据对象,则发送POST请求。传入的数据可以是字符串和对象。如果传入的是字符串,则会追击到URL后面(放在“?”或“&”后面),
//加载特定区号的天气预报
$('#temp').load("us_weather_report.html","zipcode:02121");
如果传入的是对象,该对象会被转化为一个永“&”分隔的名/值对后与请求发送。
//使用对象作为数据,并指定为华氏温度
$('#temp').load("us_weather_report.html",{zipcode:02121,unit:'F'});
3.可选参数,回调函数。(若没有指定任何数据,回调函数可以作为第二个参数传入,否则,它必须是第三个参数)
在jQuery对象中,每一个元素都会调用回调函数,并且每次调用都会传入三个参数
1.被加载URL的完整文本内容,
2,状态码字符串(是类似,“success”成功,“error”,“timeout”,“notmodified ”304 ,“parsererror”无法按照期望的方式解析 )
3,用来加载XMLHttpRequest对象。
jQuery.getScript()
1.第一个参数是JavaScript代码文件的URL。它会异步加载文件,加载完成后在全局作用域执行该代码。它能同时适用于同源和跨源脚本。
2.可以传入回调函数作为第二个参数。在这种情况下,jQuery会在代码加载和执行完成后调用一次该回调函数。
注:传递给高级工具函数的回调函数,仅在请求成功完成时才会被调用。如果需要在发生错误以及成功时都得到通知,则需要使用底层的jQuery,ajax()函数。
jQuery.getJSON()
它会获取文本,然后解析为JSON(使用jQuery.parseJSON()函数),然后调用指定的回调函数。
与getScript不同,getJSON方法还接受一个可选的数据对象参数。就和传入load方法中的 一样。这个数据必须是第二个参数。回调函数是第三个。
如果传递给jQuery.getJSON()的URL或数据字符串在末尾或“&”字符前含有“=?”字符串,则表明这是一个JSONP请求。
jQuery.get()和jQuery.post()
和上面两个函数一样,这两个方法也接受上述三个参数。除此之外,这两个方法还接受可选的第4个参数。第4个参数会影响在传入回调函数前数据的处理。
传入get或POST工具函数中的参数 | 传入回调函数前 |
text | 作为纯文本返回,不做任何处理 |
html(load方法使用的类型) | 将返回的文本插入到文档自身中 |
XML | 请求的URL被认为指向XML格式的数据,传给回调函数的值是一个表示该XML文档的document对象,而不是保存在文档文本的字符串 |
script | 请求的URL被认为指向JavaScript文件,返回的文本在传入回调函数前,会当做脚本执行。 |
JSON | 请求的URL被认为指向JSON格式的数据文件。 |
JSONP | 请求的URL被认为指向服务器脚本。在该类型下,传递给回调函数的是解析好的对象。 |
如果都没有指定以上的类型中的一个,jQuery会检查http响应中的Content-Type头,若头部信息含有以上类型的字符串,就按照常理处理,若以上都不符合,则数据就被当做纯文本处理。 |
jQuery.ajax()函数
jQuery的所有Ajax工具最后都会调用jQuery.ajax()函数。
jQuery.ajax()仅接受一个参数:一个选项对象。
=======================
明天继续更新