读书人

Java软件工程师从笨鸟到初学者之(八十

发布时间: 2012-08-13 13:21:53 作者: rapoo

Java程序员从笨鸟到菜鸟之(八十九)跟我学jquery(五)jquery中的ajax详解

Ajax让用户页面丰富起来, 增强了用户体验. 使用Ajax是所有Web开发的必修课. 虽然Ajax技术并不复杂, 但是实现方式还是会因为每个开发人员的而有所差异.jQuery提供了一系列Ajax函数来帮助我们统一这种差异, 并且让调用Ajax更加简单. Ajax 最常见的用法就是把一块 HTML 代码加载到页面的某个区域中去。为此,只需简单地选择所需的元素,然后使用 load() 函数即可。 然后如果要用普通的ajax的话会使用大量的代码来实现。下面我们就来看一下jquery中的ajax。


一:jQuery Ajax详解


jQuery提供了几个用于发送Ajax请求的函数. 其中最核心也是最复杂的是jQuery.ajax( options ),所有的其他Ajax函数都是它的一个简化调用. 当我们想要完全控制Ajax时可以使用此结果, 否则还是使用简化方法如get, post, load等更加方便. 所以jQuery.ajax( options ) 方法放到最后一个介绍. 先来介绍最简单的load方法:


1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中。


Returns: jQuery包装集

url (String) : 请求的HTML页的URL地址。

data (Map) : (可选参数) 发送至服务器的 key/value 数据。

callback (Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。

说明:

load方法能够载入远程 HTML 文件代码并插入至 DOM 中。

默认使用 GET 方式, 如果传递了data参数则使用Post方式.

- 传递附加参数时自动转换为 POST 方式。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some > selector", 默认的选择器是"body>*".

讲解:

load是最简单的Ajax函数, 但是使用具有局限性:

1 它主要用于直接返回HTML的Ajax接口

2 load是一个jQuery包装集方法,需要在jQuery包装集上调用,并且会将返回的HTML加载到对象中, 即使设置了回调函数也还是会加载.


不过不可否认load接口设计巧妙并且使用简单.下面通过示例来演示Load接口的使用:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>jQuery Ajax - AjaxEvent</title>    <script type="text/javascript" src="../scripts/jquery-1.3.2.min.js"></script>    <script type="text/javascript">        $(document).ready(function()        {            $("#btnAjax").bind("click", function(event)            {                $.get("../data/AjaxGetMethod.aspx");            })            $("#divResult").ajaxComplete(function(evt, request, settings) { $(this).append('<div>ajaxComplete</div>'); })            $("#divResult").ajaxError(function(evt, request, settings) { $(this).append('<div>ajaxError</div>'); })            $("#divResult").ajaxSend(function(evt, request, settings) { $(this).append('<div>ajaxSend</div>'); })            $("#divResult").ajaxStart(function() { $(this).append('<div>ajaxStart</div>'); })            $("#divResult").ajaxStop(function() { $(this).append('<div>ajaxStop</div>'); })            $("#divResult").ajaxSuccess(function(evt, request, settings) { $(this).append('<div>ajaxSuccess</div>'); })        });    </script></head><body>      <br /><button id="btnAjax">发送Ajax请求</button><br/>  <div id="divResult"></div></body></html>

我们可以通过将默认options的global属性设置为false来取消全局Ajax事件的触发.

4楼csh6243661886小时前
部分内容参考了网络资源。。
3楼lidaasky6小时前
非常不错的解释
Re: csh6243661886小时前
回复lidaaskyn共同学习。。。呵呵
2楼lmj810960397昨天 10:55
恩恩。。不错,学习了。。
Re: csh624366188昨天 21:30
回复lmj810960397n共同学习。。
1楼mazhaojuan昨天 10:33
好!学习了…… 果然厉害……代码部分很漂亮,怎么弄的额?
Re: csh624366188昨天 10:45
回复mazhaojuann博客设置里面有。。。

读书人网 >Ajax

热点推荐