1.1什么是Ajax
Ajax是Asynchronous JavaScript and XML的缩写,意思是异步的JavaScript与XML。Ajax并不是一门新的语言或技术,它是JavaScript、XML、CSS、DOM等多种已有技术的组合,可以实现客户端的异步请求操作,进而在不要刷新页面的情况下与服务器进行通信,减少了用户的等待时间,减轻了服务器和带宽的负担,提供更好的服务响应。1.2 Ajax的优点
Ajax的优点具体表现在以下几个方面:1、减轻服务器的负担。Ajax的原则是“按需求获取数据”,这可以最大程度地减少冗杂请求和响应对服务器造成的负担。
2、可以把一部分以前由服务器负担的工作转移到客户端,利用客户端闲置的资源进行处理,减轻服务器和带宽的负担,节约空间和成本。
3、无刷新更新页面,从而使用户不在向以前一样在服务器处理数据时,只能在死板的屏幕前焦急地等待。
4、可以调用XML等外部数据,进一步促进页面显示和数据的分离。
5、基于标准化的并被广泛支持的技术,不需要下载插件或小程序。
1.3 $.ajax()方法
$.ajax()方法是jQuery中最底层的Ajax实现方法。使用该方法可以设置更加复杂的操作,如error(请求失败后处理)和beforeSend(提前提交回调函数处理)等,使用$.ajax()方法用户可以根据功能需要自定义Ajax操作,$.ajax()方法的语法格式如下:
$.ajax(url[,settings])
其中,url:必选参数,用于发送请求的地址(默认为当前页面)
settings:可选参数,用于进行Ajax请求设置,包含许多可选的设置参数,都是以key/value形式体现的。
常用的设置参数如下表所示:
设置参数 | 说 明 |
type | 用于指定请求方式,可以设置为GET或POST,默认值为GET |
data | 用于指定发送到服务器的数据。如果数据不是字符串,将自动转换为请求字符串格式。在发送GET请求时,该数据将附加在URL后面。设置processData参数为false,可以禁止自动转换。该设置参数的值必须为key/value格式。如果为数组,jQuery将自动为不同值对应同一名称。例如“{foo:["bar1","bar2"]}”将转换为"'&foo=bar1&foo=bar2'" |
dataType | resposeText,作为回调函数参数传递,可用值如下: text:返回纯文本字符串; xml:返回xml文档,可用jQuery进行处理; html:返回纯文本HTML信息(包含<span>元素会在插入DOM后执行); script:返回纯文本JavaScript代码。不会自动缓存结果,除非设置了cache参数; Json:返回Json格式的数据; Jsonp:JSONP格式。使用JSONP形式调用函数时,如果存在代码 “url?callback=?”,那么JQuery将自动替换“?”为正确的函数名,以执行回调函数 |
async | 设置发送请求方式,默认为true,为异步请求方式,同步请求方式可以设置为false |
beforeSend(jqXHR,settings) | 用于设置一个发送请求前可以修改XMLHTTPRequest对象的函数,如添加自定义HTTP头等 |
complete(jqXHR,textStatus) | 用于设置一个请求完成后的回调函数,无论请求成功或失败,该函数均被调用 |
error(jqXHR,textStatus,errorThrown) | 用于设置请求失败时调用的函数 |
success(data,textStatus,jqXHR) | 用于设置请求成功时调用的函数 |
global | 用于设置是否会触发全局Ajax事件。设置为True,触发全局Ajax事件,设置为false则不会触发全局Ajax事件。默认值为true |
timeout | 用于设置请求超时的时间(单位为毫秒)。此设置将覆盖全局设置 |
cache | 用于设置是否从浏览器缓存中加载请求信息,设置为true将会从浏览器缓存中加载请求信息。默认值为true,当dataType的值为script和jsonp时值为false |
dataFilter(data,type) | 用于指定将Ajax返回的原始数据进行预处理的函数/提供了data和type两个参数;data是Ajax返回的原始数据,type是调用$.ajax()方法时提供的dataType参数。函数返回值将由jQuery进一步处理 |
contentType | 用于设置发送信息数据至服务器时内容编码类型,默认值为application/x-www-form-urlencoded,该默认值适用于大多数应用场合 |
ifModified | 用于设置是否在服务器数据改变时获取新数据。使HTTP包的Last-Modified头信息判读,默认值为false |
例如:
$.ajax({
url:”ChatServlet”, //设置请求地址
type:”GET”, //设置请求方式
datatype:”json”, //设置返回数据的类型
data:{
“action”:”get”,
“nocache”:new Date().getTime()
}, //设置传递的数据
//设置请求成功时执行的回调函数
Success:function(data){
},
//设置请求失败时执行的回调函数
Error:function(){
}
});