《锋利的jQuery》读书笔记 第6章 jQuery与Ajax的应用

时间:2022-10-07 15:44:06
1.Ajax全称为“Asynchronous JavaScript and XML“(异步JavaScript和XML)      (P174)
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请求成功时执行的函数