二、jquery中的ajax

来源:互联网 发布:知行乐学教育集团 编辑:程序博客网 时间:2024/06/06 05:54
一、为何封装:
1、传统的ajax是通过XMLHttpRequest对象向服务器提交希望提交的数据,即按需发送;
2、三点不足。
ajax不足:浏览器对XMLHttpRequest对象的支持度不足;兼容问题;
(通过拿到xmlhttprequest对象我们就可以看出兼容问题)
破坏了浏览器前进、“后退”按钮的正常功能;
对搜索引擎支持不足:
通常搜索引擎都是通过爬虫程序来对互联网上的数据进行搜索整理的,但是爬虫程序不能理解那些奇怪的javascript代码和因此引起的页面变化。
开发和调试工具的缺乏。

二、JQuery对ajax的三层封装
1、jquery对ajax进行了封装
在jquery中$.ajax()方法属于最底层的方法,
第二层是load()、$.get()\$.post()方法,
第三层是$.getScript()和$getJSON()方法。

2、第二层
1)、load()方法
说明:该方法是jQuery中最简单和最常用的Ajax方法,能载入远程的html代码并插入到DOM中
结构:load(url,data,callback);
参数说明:
url:String类型,表示请求html页面的统一资源定位器地址;要载入的远程url地址
data:Object类型,发送至服务器的key/value数据
callback:Function类型,请求完成后的回调函数,无论请求成功或失败。
举例一:加载load.html内容
举例二:筛选载入html文档
结构:$("#restext").load("test.html .para");(url与选择器之间有一个空格)
2)、$.get()方法
说明:load()方法常用来从web服务器上获取静态的数据文件。在项目中,如果需要传递一些参数给服务器中的页面,就可以使用$get()和$post()方法。这两个方法都是jquery中的全局函数。
结构:$.get()(url,data,callback,type);
参数说明:其他如上,type表示服务器端返回内容的格式,包括xml,html,json,等
举例
$("#send").click(function(){ $.get("get1.php",{/一个json片段},回调函数); });
服务器返回的数据格式有多种:html片段、xml文档、json文件。
$.post()方法
结构和$.get()方法相同,不过也有区别,就是一些传递数据的规则不同。

3、第三层
$.getScript()方法和$.getJson()方法
1)、$.getScript()方法
说明:有时候页面初次加载时就取得全部的javascript文件是没有必要的,虽然也有一些解决方法,但是都不理想,为此,jquery提供了$.getScript()方法来直接加载.js文件。
举例
$("#send").click(function(){ $.getScript("test.js"); });
2)、$.getJson()方法
说明:加载JSON文件,和$.getScript()方法的用法相同。

4、最底层$.ajax()的使用
说明:该方法只有一个参数,但是这个对象里面包括了该方法所需要的请求设置以及回调函数等信息,参数以key/value的形式存在,所有参数都是可选
常用参数
url:要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type:要求为String类型的参数,请求方式(post或get)默认为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类型的参数,预期服务器返回的数据类型。
返回的类型有:json、xml、text、jsonp、script等;
complete:要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用)。


原创粉丝点击