本篇将jQuery Ajax的使用进行一个完整的总结,由于涉及到的内容相似,但方法重多,所以本篇内容会显得比较多。Ajax是提高网站应用程序的一个很好的方法,当然这 使得我们可能要书写更多的代码和花费更多的时间来实现这一目的。然而,现在jQuery使得Ajax开发变得异常简单。
我们先从最简单的方法看起,处理复杂的ajax请求时,jQuery使用jQuery.ajax()方法进行处理。在jQuery中有一些简单的方法,它 对jQuery.ajax()方法进行了封装,使得我们在处理一些简单的Ajax事件时,不需要使用jQuery.ajax()方法,其中有些方法在之前 的文章中已经出现过了,相信大家很快便能掌握。当然,本篇后半部分会对jQuery.ajax()方法做非常具体的说明,因为它是本篇的重中之重。
以下5个方法执行一般Ajax请求的简短形式,在处理复杂的Ajax请求时应该使用jQuery.ajax().
1.load(url,[data],[callback])
载入远程HTML文件代码并插入至DOM中,默认使用GET方式,传递参数时自动转换为POST方式。
- url:要载入的远程url地址
- data:发送至服务器的key/value 数据
- callback:载入成功时的回调函数
示例代码如下:
- //无参数、无回调函数
- $("#showload").load("load.htm");
- //无回调函数
- $("#showload").load("load.htm", { "para": "para-value" });
- $("#showload").load("load.htm", { "para": "para-value" },
- function() {
- //处理
- })
2.jQuery.get(url, [data], [callback])
使用get方式从服务器端获取数据。
- 发送请求的URL地址
- 要发送给服务器的数据
- 载入成功时回调函数
示例代码如下:
- $.get("jqueryget.htm", { "id": this.id },
- function(req) {
- //成功时的回调方法
- $("#showget").html(req);
- });
- })
这里将显示logo
3.jQuery.post(url, [data], [callback])
使用POST方式来进行异步请求。同jQuery.get()相比,差别在于请求的方式,所以这里不做特别的说明了,使用方法同jQuery.get()相似。
4.jQuery.getScript(url,[callback])
通过 GET 方式请求载入并执行一个JavaScript文件。这个技术在前边文章中已经提到过,也是jQuery.ajax的一种简单的使用方法,可以看看ajax加载js,所以在这里也不做特别的说明了。
5.jQuery.getJSON(url,[data],[callback])
通过get方式获取json格式的数据。
示例代码如下:
- $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function(req) {
- $.each(req.items, function(i, item) {
- if (i == vnum) {
- $("<img src="" + item.media.m + "" title="" + item.title + "" />").appendTo("#showjson");
- }
- });
- });
同样的,这也是jQuery.ajax()方法的一种简写方法,类似如下方法:
- $.ajax({
- url: url,
- dataType: 'json',
- data: data,
- success: callback
- });
可能你还没有使用过json数据,我的小站中已经好几次提到了json的使用,如果你还不熟悉json格式,可以看看jquery移动listbox的值、jQuery下json的使用实例
这里将随机显示一条json数据
到目前为止我们总结了jQuery.ajax的五种简写方法,接下来让我们集中精神,看看jQuery.ajax()方法,在使用中,笔者也是经常使用的jQuery.ajax(),因为大多数情况,我们需要对ajax请求出错的情况进行捕捉并处理。
6.jQuery.ajax()
使用jQuery.ajax()方法获取数据,下边给个常用写法,并做了相应的注释。
- $.ajax({
- url: "http://www.microsoft.com", //请求的url地址
- dataType: "json", //返回格式为json
- async: true, //请求是否异步,默认为异步,这也是ajax重要特性
- data: { "id": "value" }, //参数值
- type: "GET", //请求方式
- beforeSend: function() {
- //请求前的处理
- },
- success: function(req) {
- //请求成功时处理
- },
- complete: function() {
- //请求完成的处理
- },
- error: function() {
- //请求出错处理
- }
- });
这里将显示数据
本篇的jQuery ajax使用就总结到这里,当然还有一些方法并未能全部的总结。如ajaxStart()、ajaxStop()等,在以后使用中,我会把它们也总结下来。