`
redstarofsleep
  • 浏览: 443881 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JQuery的Ajax学习(1)

阅读更多

Jquery提供了Ajax的前端封装,今天学习了一下,使用还是非常的方便的。

Jquery中的Ajax操作一共提供了6个方法,分别是$.ajax(),load(),$.get(),$.post,$getScript(),$getJSON()。这6个方法中$.ajax()是最底层的,其它的方法都是基于这个方法的.

注:我这里的例子使用的是JSP和Struts2

1.load()方法

load()方法的使用方法是最简单的,可以在元素上直接使用这个方法,load()方法可以有3个参数,分别是url,data,callback,其中url是必须参数,代表接受请求的URL,另外2个是可选参数,其中data是发送至服务器的key:value数据,callback是回调函数.

例子1:

页面上有一个按钮,一个DIV

<input type="button" value="JAjax1" onclick="tryAjax1();"></input>

<div id="JAjax"></div>

 按钮的onclick事件如下:

var url = 'test.html';
function tryAjax1() {
	$('#JAjax').load(url);
}

 test.html的代码如下:

<table id="insert">
	<tr><td>aaa</td></tr>
	<tr><td>aaa</td></tr>
</table>

 就这么几行简单的代码,就完成了一个Ajax示例,点击"JAjax1",id为"insert"的Table就插入了"JAjax"这个DIV中.

例子1这种方式对于载入一些静态的内容是非常好的,像这样只带一个参数的load方法发送的GET请求,但是如果想载入动态内容有时候就会出问题,因为GET方式的请求会数据会被浏览器缓存起来,导致第二次再点击按钮是不再发送请求.(至少我在IE8下试验是这样的,在Firefox中每次点击按钮都会发送请求),但是如果load方法加上了第二个参数,也就是发送到服务器的数据,这样的话,load方法会以PSOT方式发送请求,POST请求每次都会提交到服务器端.

例子2:

页面上依旧还是只有一个DIV和按钮:

<input type="button" value="JAjax1" onclick="tryAjax1();"></input>

<div id="JAjax"></div>

 按钮的onclick事件进行了修改:

var url = 'testajax!testAjax.action';
function tryAjax1() {
	$('#JAjax').load(url, {'content':'Jquery Ajax load1'}, callback1);
}
function callback1(responseText, textStatus, XMLHttpRequest) {
	alert(responseText);
	alert(textStatus);
}

 这次,把请求发到了Struts2的一个Action,传递了一个参数{'content':'Jquery Ajax load1'},并且添加了一个回调函数callback1,这个回调函数没有什么实际意义,纯粹的打印服务器返回的数据而已.

action的代码:

package action;

import com.opensymphony.xwork2.ActionSupport;

public class AjaxAction extends ActionSupport {

	private static final long serialVersionUID = -8023333659379228177L;
	
	private String content;
	
	public String testAjax() {
		System.out.println("%%%%%%%%%" + content);
		return "ajax2";
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}
}

 action里返回的"ajax2"指向了一个JSP页面,这个页面的代码如下:

<table id="insert">
	<tr><td>aaa</td></tr>
	<tr><td>${content}</td></tr>
</table>

 现在再点击按钮,能看到id 为"insert"的这个Table被插入到了id 为"JAjax"这个DIV里"${content}"被替换成了"Jquery Ajax load1".这个例子结合Struts2实现了将动态内容载入页面,在实际中这种方式很使用,使用也非常方便.

load方法还支持id选择器,在load()方法的URL最后加入一个ID选择器,就可以载入指定的元素了,在上面的例子中,在url后加上#insert,url现在变成了"testajax!testAjax.action #insert"这样就载入id为insert的元素了,但是要注意,URL和ID选择器之间有一个空格!

最后,提一下load方法的回调函数,load方法的回调函数有3个参数,第一个是请求返回的内容,第二个是状态:success,error,notmodified,timeout,4种,第三个参数是XMLHttpRequest对象.在load方法中,无论Ajax请求是否成功,回调函数就会被触发.而且回调函数的触发是在内容被插入到页面之后的,从上面的例子中就可以看出来,在alert的时候,内容实际上已经插入页面了.

 

2. $.get()方法

$.get()方法是用GET方式来提交请求的.

$.get()方法最多可以有4个参数,分别是url,data,callback,type

其中url是必选参数,其它三个是可选参数,type参数是指服务器端返回的内容的格式,可以是xml,html,script,json,text或_default.其它几个参数的含义与load方法是一样的.

例子3:

还是和上面的例子一样,这次用$.get()方法来做:

页面上还是一个按钮和一个DIV

<input type="button" value="JAjax2" onclick="tryAjax2();"></input>

<div id="JAjax"></div>

 Javascript代码如下:

var url = testajax!testAjax.action';
function tryAjax2() {
	$.get(url,{'content':'Jquery Ajax load2'},callback2,'html');
}
function callback2(data, textStatus) {
	$('#JAjax').append(data);
}

 Action代码和返回的JSP的代码和例子2的是一样的.

$.get()方法的回调函数有两个参数,分别是服务器返回的数据和请求状态,请求状态和load()方法一样,也是那4种.与load()方法不同的是,$.get()方法的回调函数只有当数据成功返回后才被调用.回调函数中可以根据服务器返回的不同类型数据(html,xml,json等)做相应的处理即可.

 

3. $.post()方法

$.post()方法的形式和使用方法和$.get()方法是完全相同的,只是一个是GET请求,一个是POST请求而已.

 

4. $.getScript()方法

这个方法用来载入JS文件,加载过来的JS文件不需要做任何处理,Javascript文件会自动执行.$.getScript()方法也有回调函数,可以在回调函数中调用载入的JS文件中的方法.回调函数没有参数.

 

5. $.getJSON()方法

这个方法是用来加载JSON文件的,用法与上一个$.getScript()一样.

 

6. $.ajax()方法

这个方法是JQuery里最底层的Ajax方法,方法只有一个参数,但是用法确是最复杂的.虽然这个方法只有一个参数,但是这个参数可以包含很多东西,参数都是以键值对的形式组织到一起的,所有参数都是可选的,例如可以这样写:$.ajax({url:'ajax.html',type:'GET'}).

还可以有很多其它的参数,有关这个方法的用法这里就先不讨论了,下次(已经写了,在这个地址 http://redstarofsleep.iteye.com/blog/857502 )专门再研究.(个人认为上面这些方法已经足够用了,这个方法的用处不大).

 

今天就先写到这吧.

 

 

25
0
分享到:
评论
4 楼 redstarofsleep 2011-01-08  
xiaojin21cen 写道
不错,谢谢了。

多谢支持
3 楼 redstarofsleep 2011-01-08  
kidfang 写道
谨受教 

多谢支持
2 楼 xiaojin21cen 2011-01-08  
不错,谢谢了。
1 楼 kidfang 2011-01-08  
谨受教 

相关推荐

    jquery、ajax学习电子书.zip

    《jQuery与Ajax学习指南》是一本专为初学者和有一定JavaScript基础的开发者设计的电子书,旨在帮助读者深入理解和熟练掌握这两个在实际Web开发中不可或缺的技术。jQuery是一个强大的JavaScript库,它极大地简化了DOM...

    Jquery Ajax分页(有实例)

    **jQuery AJAX分页技术详解** ...对于初学者,这个实例是学习和理解AJAX分页的宝贵资源,而对于经验丰富的开发者,它则提供了灵感和参考。在实践中不断探索和优化,将能创造出更多适应不同场景的分页解决方案。

    asp+jquery ajax实例源码,添加,删除,修改,分页

    1. **jQuery与AJAX基础** - jQuery提供了$.ajax()函数,使得发起AJAX请求变得简单。该函数允许我们指定URL、请求类型(GET或POST)、数据、回调函数等参数,实现异步数据通信。 - AJAX的核心优势在于其非阻塞特性...

    JqueryAjax简单实例

    在这个"JqueryAjax简单实例"中,我们主要关注如何在Visual Studio 2005 C#环境下利用jQuery实现AJAX的功能。首先,我们需要确保项目中已经引入了jQuery库。这通常通过在HTML头部添加jQuery库的CDN链接或者将jQuery....

    html静态页JQuery ajax示例demo 源码

    在这个"html静态页JQuery ajax示例demo 源码"中,我们可以深入学习和理解AJAX在C# ASP.NET环境下的应用。 首先,AJAX(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下,能够更新部分网页的...

    Jquery Ajax简易计算器

    **jQuery AJAX简易计算器** 在Web开发中,动态交互是提升用户体验的重要手段,而jQuery的AJAX功能正是实现这种交互的核心技术。本项目“jQuery AJAX简易计算器”旨在展示如何利用jQuery库与服务器端进行异步数据...

    传智播客 jQuery ajax 课件

    1. **jQuery AJAX基本使用** - `$.ajax()`: 这是jQuery中最核心的AJAX函数,用于发起一个完整的AJAX请求。参数包括URL、类型(GET或POST)、数据、回调函数等。 - `$.get()`: 用于发起GET请求,简化了`$.ajax()`的...

    从Ajax到JQuery Ajax学习

    ### 从Ajax到jQuery Ajax的学习 #### Ajax技术基础 **Ajax**(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术通过在后台与服务器进行少量数据交换,...

    MVC Jquery Ajax例子

    JQuery是一个轻量级的JavaScript库,简化了DOM操作、事件处理、动画制作以及AJAX交互。在本例中,JQuery可能被用来处理用户界面的交互,如表单验证、按钮点击事件、无刷新分页等,提高了前端用户体验。 **Ajax技术*...

    利用Ajax+Jquery实现异步进度条效果

    1. 使用Jquery选择器选取进度条元素。 2. 编写Ajax请求,设置URL指向C#服务端接口,类型通常为GET或POST。 3. 在Ajax请求的`beforeSend`回调中,启动进度条动画。 4. `success`或`progress`回调接收到服务器返回的...

    vue基本环境+jquery ajax应用

    在标题“vue基本环境+jquery ajax应用”中,我们可以理解为这个压缩包可能包含了一个基本的Vue开发环境,并展示了如何结合jQuery的AJAX功能来处理数据请求。 Vue的基本环境通常包括Vue的核心库、Vue CLI(命令行...

    Jquery跨域Ajax请求测试

    本示例"Jquery跨域Ajax请求测试"将详细讲解如何利用jQuery实现这一功能。 首先,了解同源策略是理解跨域问题的关键。同源策略是浏览器为了保障用户安全而设定的一项机制,它规定了只有来自同一协议、同一域名和同一...

    jquery,ajax的几个小例子

    1. **$.ajax()函数**:这是jQuery中最核心的Ajax方法,可以接受多个参数来定制请求。例如,URL、类型(GET或POST)、数据、回调函数等。基本用法如下: ```javascript $.ajax({ url: 'your-url', type: 'GET', ...

    javascript+jquery+ajax相关学习资料PPT

    2. JQueryAjax教程讲解.ppt:这可能是关于使用jQuery进行AJAX请求的详细讲解,包括$.ajax()函数,$.get()和$.post()方法的使用,以及如何处理回调函数。 3. Jquery(很好的PPT教程-技术较为全面-分享给大家).ppt:这...

    一个完整的jquery+ajax传送请求的实例

    在IT行业中,jQuery和AJAX是两个非常关键的前端技术,它们极大地简化了网页与服务器之间的数据交互。本文将深入探讨一个完整的jQuery+AJAX传输请求的实例,旨在帮助开发者理解如何有效地使用这两种技术实现异步数据...

    jquery 教程 ajax 资料 txt 学习笔记

    根据给定文件的信息,我们可以提炼出一系列与 jQuery 相关的知识点。这些知识点涵盖了 jQuery 的基本用法、DOM 操作、CSS 样式调整...通过上述知识点的学习,你可以更高效地利用 jQuery 来构建现代化的 Web 应用程序。

    jQuery Ajax 登陆和注册页面

    **一、jQuery与Ajax基础** jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理和AJAX交互。Ajax(Asynchronous JavaScript and XML)技术允许我们在不刷新整个页面的情况下与服务器进行数据交互,提高页面...

    jquery-ajax最简单的实力

    在这个教程中,我们将深入理解如何使用jQuery中的AJAX函数来读取XML文件,进而实现二级联动效果,这对于初学者来说是一个很好的学习起点。 **一、jQuery AJAX基础** 1. **AJAX简介**:AJAX允许在不刷新整个页面的...

    jQuery中的ajax学习

    本篇文章将深入探讨jQuery中的Ajax学习,主要聚焦于如何使用jQuery进行异步数据交换,以及它如何帮助开发者创建更高效、更流畅的用户界面。 首先,jQuery的`$.ajax()`函数是实现Ajax的核心方法。它允许我们发送HTTP...

    基于jQuery的Ajax聊天室程序

    1. **jQuery**:jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。在本聊天室中,jQuery提供了方便的方法来操作DOM元素,监听用户输入,以及发起Ajax请求。 2. **Ajax**...

Global site tag (gtag.js) - Google Analytics