Ajax: Asynchron Javascript and Xml (异步的JavaScript和XML)
1:异步通信步骤:1):定义XMLhttprequest对象实例,
2):调用open()方法与服务器建立连接,
3):注册onreadystatechange事件处理函数以便接收和处理服务器端相应的信息,
4):调用send()方法发送请求
2:open()方法:xmlhttprequest.open(method, url, async, user, password)。其中,前两个参数是必须的,method 表示http方法:post,get,put,propfind,不区分大小写。URL表示请求的地址,相对地址与绝对地址都可以。Async设置是否异步通信,默认为true,表示可以异步,取值为false时,表示同步。user和passward表示请求的文件需要服务器进行验证,如果未指定,当服务器需要验证时,会弹出验证窗口。
3:jQuery中的ajax: $.getScript()和$.getJson()方法属于第三层,load(),$.get()和$.post()方法属于第二层,$.ajax()方法为最底层的方法。
1):load()方法: $("#goal").load(
"url","data","function(){
}" )
<div id="goal"></div>,则请求的内容被放入#goal中。load()方法的三个参数URL是字符串类型,表示URL地址;data表示参数,属于object对象,表示请求数据的关键字,例如username等;function是请求完成时的回调函数,无论是否请求成功。
/*若load()方法中有data参数,则采用POST方法,否则采用GET方法 */
2):$.get()方法:$.get(url,[data],[success(data,textStatus,jqXHR)],[dataType])
e,g : $.get(
"text.txt",{
name:"zhangsna ";
pass:"12345"
},function(data){
$("#resText").html(data);
});
get()方法回调函数有两个参数data,textStatus(请求状态:success,error,notmodified,timeout)。
get()方法的回调函数只有请求完成且成功时才会调用,与load()不同。
3):$.post()方法:结构与用法与get()方法相同。不同之处在于:GET对传输data大小有限制,一般不大于2KB,POST基本无。GET方式请求的data会被浏览器缓存起来,其他人会从历史记录看到。
4):$.ajax()方法:只有一个参数,$.ajax(options);options是一个对象,包括一些的参数有{url,type,timeout,data,datatype,beforesend,compete,success,error,global}.type的默认类型是POST.