21、使用jQuery封装后的Ajax

来源:互联网 发布:mac系统装flash 耗电 编辑:程序博客网 时间:2024/05/16 06:49
概括:Ajax是 Asynchronous JavaScript and XML 的缩写,中文翻译为“异步JavaScript和XML" ,是利用
JavaScript语法和XML数据实现客户端与服务器端进行异步通信的一种方法。

jQuery封装了Ajax 的交互过程,用户不需要考虑XMLHttpRequest对象的兼容性问题,以及使用XMLHttpReques建立连接
、发送请求、发送方式、接收方式等。只需要用几个简单的jQuery定义的方法就能实现异步通信。

一、使用GET请求
jQuery定义了get()方法,专门负责通过运程HTTP GET 请求方式载入信息。该方法是一个简单的
GET请求功能,以取代复杂的$.ajax()方法
get()方法具有四个参数:
1、第一个参数表示要请求的页面的URL地址
2、第二个参数表示一个对象结构的名/值对列表  如:{a:"A",b:"B"}
3、第三个参数表示异步交互成功之后调用的回调函数。回调函数的参数值为服务器端响应的数据信息。
4、第四个参数表示服务器端响应信息返回的内容样式,如XML、HTML、Script、Json和Text或者_default

注:只有第一个参数是必需的。
get()方法能够在请求成功时调用回调函数,如果需要在出错时执行函数,则必须使用$.ajax()方法。

二、使用POST请求
jQuery定义了post()方法,专门负责通过远程HTTP POST请求方式载入信息。该方法是一个简单的的
POST请求功能,以取代复杂的$.ajax()方法。
post()方法包含4个参数:
1、第一个参数表示要请求的页面的URL地址
2、第二个参数表示一个对象结构的名/值对列表  如:{a:"A",b:"B"}
3、第三个参数表示异步交互成功之后调用的回调函数。回调函数的参数值为服务器端响应的数据信息。
4、第四个参数表示服务器端响应信息返回的内容样式,如XML、HTML、Script、Json和Text或者_default
注:用法与get()方法完全相同,不过只有请求方式不同而已。

不管是get()方法,还是post()方法,它们都是一种简单的请求方式,对于特殊的数据请求和响应处理
,应该选择$.ajax()方法,$.ajax()方法的参数比较多且复杂,能够处理各类特殊的异步交互行为

三、使用ajax()请求
ajax()方法是jQuery实现Ajax的底层方法,也就是说这是get()、post()等方法基础。
ajax()方法只有一个参数,即一个列表结构的对象,包含各配置及回调函数信息。
如:
$.ajax(
{
type:"GET",//请求方式
url:"test.js",//请求文件的URL
dataType:"script"//响应的数据类型
}
)
                 ajax()方法的参数选项列表
参数        数据类型        说明
async        boolean        设置是不异步请求,默认为true,如果设置为false,同步语法将锁住浏览器,等待操作
                完成才可以执行其他操作。

beforeSend    Function    发送语法前可修改XMLHttpRequest对象的函数,如添加自定义的HTTP头,XMLHttp
                Request是唯一的参数,该函数如果返回false,可以取消本次Ajax请求

cache        Boolean        设置缓存。默认为true

complete    Function    请求完成后回调函数(请求成功或者失败都调用),该函数包含两个参数,XMLHttp
                Request对象和一个描述成功请求类型的字符串。

contentType    String        发送信息到服务器时内容编码类型。默认为:application/x-www-form-urlencoded

data        Object,String    发送到服务器的数据,必须为key/value格式。

dataFilter    Function    给Ajax返回的原始数据进行预处理的函数,提供data和type两个参数:
                data是Ajax返回的原始数据,type是调用jQuery.ajax()时提供的dataType参数。
                函数返回的值将由jQuery进一步处理

dataType    String        预期服务器返回的数据类型,如果不指定,jQuery自动根据HTTP包含的MIME
                信息返回responseXML或responseText,并作为回调函数参数传递,可用值:
                xml、html、script、json、jsonp、text

error        Function    请求失败时调用函数。该函数包含了三个参数:XMLHttpRequest对象、错误信息(可选)
                、捕获的错误对象。如果发生了错误,错误信息除了得到null之外,还可能是
                timeout、error、notmodified、parseerror

global        Boolean        是否触发全局Ajax事件,默认值为true。设置为false将不会触发全局Ajax事件,
                如:ajaxStart或ajaxStop可用于控制不同的Ajax事件

ifModified    Boolean        仅在服务器数据改变时获取数据,默认值为false。使用HTTP包含的Last-Modified
                头信息进行判断。

jsonp        String        在一个jsonp请求中重写回调函数的名字。这个值用来替代在“callback=?”这种
                GET或POST请求中URL参数里的callback部分,比如{jsonp:"onJsonPLoad"}会导致
                将"onJsonPLoad=?"传递给服务器

password    String        用于响应HTTP访问认证请求的密码。

processData    Boolean        发送的数据将被转换为对象,默认值为true,

scriptCharset    String        只有当请求dataType为jsonp或script,并且type是GET才会用于强制修改charset。
                通常在本地和远程的内容编码不同时使用。

success        Function    请求成功后的回调函数。函数的参数由服务器返回,并根据dataType参数进行处理
                后的数据:描述状态的字符串

timeout        Number        设置请求超时时间(毫秒)。此设置将覆盖全局设置

type        String        设置请求方式,如POST或GET,默认为GET。

url        String         发送请求的地址,默认为当前页面地址

username    String        用于响应HTTP访问认证请求的用户名

xhr        Function    需要返回一个XMLHttpRequest对象。


四、跟踪状态

jQuery在XMLHttpRequest对象定义的readyState属性基础上,对异步交互中服务器响应状态进行封装,提供
了6个响应事件。

事件            说明
ajaxStart()        Ajax请求开始时进行响应
ajaxSend()        Ajax请求发送前进行响应
ajaxComplete()            完成时
ajaxSuccess()            成功时
ajaxStop()            结束时
ajaxError()            发生错误时


五、载入文件

遵循Ajax异步交互的设计原则,jQuery定义了可以加载网页文档的方法load()。    
load() 方法能够把加载的网页文件附加到指定的网页标签中。
比如:
$("div").load("test.html");

可以使用ajax()方法可以替换load()方法,因为load()方法是以ajax()方法底层来实现的。

使用以下代替
 var str=($.ajax(
{
url:"test.html",
async:false
})).responseText;

$("div").html(str);

六、预设Ajax选项

对于频繁与服务器进行交互的页面来说,每一次交互都要设置很多选项,为些,jQuery定义了ajaxSetup()方法,该方法
可以预设异步交互中通用选项,从而减轻频繁设置选项的烦琐。

ajaxSetup()方法的参数仅包含一个参数选项的列表对象,这与ajax()方法的参数选项设置是相同的。在该方法中设置的选项,可以实现全局共享,从而在具体交互中只需要设置个性化参数即可。

七、预处理字符串
0 0
原创粉丝点击