2.Ajax的优势和不足: (P174) 优势: 1.不需要插件支持 2.优秀的用户体验 3.提高Web程序的性能 4.减轻服务器和宽带的负担 不足: 1.浏览器对XMLHttpRequest对象支持度不足 2.破坏浏览器前进、后退 按钮的正常功能 3.对搜索引擎的支持的不足 4.开发和调试工具的缺乏
3.jQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第2层是load()、$.get()和$.post()方法,第3层是$.getScript()和$.getJSON()方法。 (P179)
4.load()方法 (P179) 方法定义: load( url [, data] [, callback] ) data为发送至服务器的key/value数据,如果data为空或没给出则采用GET方式发送请求否则以POST,方式发送 callback为请求完成时的回调函数,无论请求成功和失败,该函数有3个参数,分别代表请求返回的内容、请求状态和XMLHttpRequest对象
5. $.get()方法和$.post()方法 (P182) 方法定义:$.get( url [, data] [, callback] [, type] ) $.get( url [, data] [, callback] [, type] ) data:$.get()方法中发送到服务器的key/value会作为QueryString附加到请求URL中而$.post()是作为HTTP消息的实体内容发送的 callback:载入成功时回调函数,此回调函数有两个参数分别为请求返回的内容和请求状态 type:服务端返回内容的格式,包括xml、html、script、json、text和_default
6. $.getScript()方法和$.getJSON()方法 (P187) jQuery提供了$.getScript()方法来直接加载.js文件,与加载一个HTML片段一样简单方便,并且不需要对JavaScript文件进行处理,JavaScript文件会自动执行。 函数定义:jQuery.getScript( url [, success(script, textStatus, jqXHR)] ) $.getJSON()方法用于加载JSON文件,与$.getScript()方法的用法相同 函数定义:jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )
7.$.ajax()方法是jQuery最底层的Ajax实现 (P191) 方法定义:$.ajax(settings)或者$.ajax(url [, settings]) settings是一组用于设置Ajax请求的key/value对,默认的选项可以通过$.ajaxSetup()来设置 详细的选项列举如下:
参数名称 | 类型 | 说明 |
url | String | (默认为当前页地址)发送请求的地址 |
type | String | 请求方式(POST或GET)。注意其他HTTP请求方法,例如PUT和DELETE也可以使用,但仅部分浏览器支持 |
timeout | Number | 请求超时事件。此设置将覆盖$.ajaxSetup()方法的全局设置 |
data | Object 或 String |
发送到服务器的数据。如果已经不是字符串。将自动转换为字符串格式。GET请求中将附加在URL后。防止这种自动转换,可以查看processData选项。对象必须为key/value格式,例如{foo1 :"bar1", foo2 :"bar2"}转换为$foo1=bar1&foo2=bar2。如果是数组,jQuery将自动为不同值对应同一个名称。例如{foo:["bar1", "bar2"]}转换为$foo=bar1&foo=bar2 |
dataType | String | 预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包MIME信息返回responseXML或responseText,并作为回调函数参数传递。 可用的类型如下: xml:返回XML文档。可用jQuery处理。 html:返回纯文本HTML信息:包含script标签会在插入DOM时执行 script:返回纯文本JavaScript代码。不会自动缓存结构。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有POST请求都将转为GET请求 json:返回JSON数据 jsonp:JSONP格式。使用JSONP形式调用函数时,例如myurl?callback=?,jQuery将自动替换后一个“?“为正确的函数名,以执行回调函数 text:返回纯文本字符串 |
beforeSend | Function | 发送请求前可以修该XMLHttpRequest对象的函数,例如添加自定义HTTP头。在beforeSend中如果返回false可以取消本次Ajax请求。XMLHttpRequest对象是唯一的参数 function(XMLHttpRequest) { this; // 调用本次Ajax请求时传递的settings参数 } |
complete | Function | 请求完成后调用的回调函数(请求成功或失败时均调用) 参数:XMLHttpRequest对象和一个描述成功请求类型的字符串 function (XMLHttpRequest, textStatus) { this; // 调用本次Ajax请求时传递的settings参数 } |
success | Function | 请求成功后调用的回调函数,有两个参数 (1)由服务器返回,并根据dataType参数进行处理后的数据。 (2)描述状态的字符串 function (data, textStatus) { // data可能是xmlDoc、jsonObj、html、text等等 this; // 调用本次Ajax请求时传递的settings参数} |
error | Function | 请求失败时被调用的函数。该函数有3个参数,即 XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。 Ajax事件函数如下: function (XMLHttpRequest, textStatus, errorThrown) { // 通常情况下 textStatus 和 errorThrown 只有其中一个包含信息 this; // 调用本次Ajax请求时传递的settings参数 |
global | Boolean | 默认为true。表示是否触发全局Ajax事件。设置为false将不会触发全局Ajax事件,AjaxStart或AjaxStop可用于控制各种Ajax事件。 |
8.序列化元素 (P194) serialize()方法 ,能够将DOM元素内容序列化为字符串,用于Ajax请求。 serializeArray()方法,和serialize()方法类似,将DOM元素序列化后,返回JSON格式的数据。 $.paran()方法,serialize()方法的核心,用于将一个数组或对象按照key/vlaue进行序列化。 --------------------------------------------------
author: cs_cjl
website: http://blog.csdn.net/cs_cjl
--------------------------------------------------
9.jQuery中的Ajax全局事件: (P197)
方法名称 | 说明 |
ajaxStart(callback) | Ajax请求开始时,触发回调函数 |
ajaxStop(callback) | Ajax请求结束时,触发回调函数 |
ajaxComplete(callback) | Ajax请求完成时,触发回调函数 |
ajaxError(callback) | Ajax请求发生错误时执行的函数,捕获到的错误可以作为最后一个参数传递 |
ajaxSend(callback) | Ajax请求发送前执行的函数 |
ajaxSuccess(callback) | Ajax请求成功时执行的函数 |