`
lemo
  • 浏览: 90914 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jquery中的ajax

阅读更多
jquery对ajax操作进行了封装,在jquery中$.ajax()属性最低层的方法,第2层是load(),$get()

和$post方法,第3层是$.getScript和$.getJSON()方法。

load方法
1.load()是jquery中最常用和简单的ajax方法,能载入远程html代码并插入DOM中.
load(url[,data][,callback])
url:string类型,请求html页面的url地址
data(可选):Object类型,发送至服务器的key/value数据
callback(可选):function,请求完时的回调函数,无论请求成功或失败
test.html:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="comment">
 <h6>张三:</h6>
 <p class="para">沙发.</p>
</div>
<div class="comment">
 <h6>李四:</h6>
 <p class="para">板凳.</p>
</div>
<div class="comment">
 <h6>王五:</h6>
 <p class="para">地板.</p>
</div>
</body>
</html>


新建一个html,用button按钮来触发ajax事件:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
* { margin:0; padding:0;}
body { font-size:12px;}
.comment { margin-top:10px; padding:10px; border:1px solid #ccc;background:#DDD;}
.comment h6 { font-weight:700; font-size:14px;}
.para { margin-top:5px; text-indent:2em;background:#DDD;}
</style>
 <!--   引入jQuery -->
<script src="../scripts/jquery-1.3.1.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
  $(function(){
	  $("#send").click(function(){
			  $("#resText").load("test.html");
	  })
  })
</script>
</head>
<body>
<input type="button" id="send" value="Ajax获取" />

<div  class="comment">
	已有评论:
</div>
<div id="resText" ></div>
</body>
</html>


2.筛选载入的html文档
如果只要加载test.html页面内的某些元素:
load()的url参数语法结构为:url selector
$("#resText").load("test.html .para");

3.传递方式:
load()方法的传递方式根据参数data来自动指定。如是果没有参数传递,则采用get方式传递;反之用post
$("$resText").load("test.jsp",function(){
});
$("$resText").load("test.jsp",{name:'r',age:'2'},function(){
});

4.回调参数
对于必须在加载完成后才能继续的操作,load()方法提供了回调函数(callback),该函数有3个参

数,分别代表请求返回的内容、请求状态和xmlhttprequest对象
$("$resText").load("test.jsp",function(responseText,textStatus,xmlhttprequest){
});

load()中,无论ajax请求是否成功,只要当请求完成后,回调函数就被触发

$.get()和$.post()
load()通常用来从web服务器上获取静态的数据文件,如果需要传递一些参数给服务器的页面,

可以使用$.get()或者$.post().它们是jquery中的全局函数
1.$.get()
使用get方式进行异步请求
$.get(url[,data][,callback][,type])
url: string类型,请求HTML页面的UTL地址
data:Object,发送到服务器的key/value数据会作为queryString附加到请求url中
callback:function,载入成功时回调函数(只有当response的返回状态是success才调用该方法

)自动将请求结果和状态传递给该方法
type:string,服务端返回内容的格式(xml,html,script,json,text , _default)

$.post()
与$.get()方法的结构和使用方式相同,不同处有:
1.get请求会将参数跟在url后进行传递,而post请求则是作为http消息的实体内容发送给web服

务器。
2.get请求大小有限制(2kb),post理论上不受限制
3.get请求的数据会被浏览器缓存起来,而post方式相对来说可以避免这些问题

$.getScript()和$.getJSON()
1.$.getScript()
有时需要动态的创建<script>标签
$(document.createElement("script")).attr("src","test.js").appendTo("head");或
$("<script type="text/javascript" src="test.js"/>")appendTo("head");

jquery提供了更为理想的方法$.getScript()来直接加载.js文件
$(function(){
    $('#send').click(function(){
	$.getScript('test.js');
    })
})
$.getScript()也有回调函数,它会在js文件成功载入后运行。
$(function(){
	$.getScript('test.js',function(){
	    $("#go").click(function(){
		....;
	    })
       })
})


$.getJSON()
用于加载json文件
$(function(){
    $('#send').click(function(){
	$.getJSON('test.json');
    })
})

在回调函数中对返回的数据进行处理
$(function(){
    $('#send').click(function(){
	$.getJSON('test.json',function(data){
	  //data:返回的数据	
	});
    })
})

需要对返回的数据进行遍历。这里使用$.each()函数.
$.each()不同于jquery对象的each(),它是一个全局函数,不操作jquery对象。而是以一个数组

或者对象作为第1个参数,以一个回调函数作为第2个参数。
回调函数有两个参数:
第1个为对象的成员或数组的索引。
第2个为对应变量或内容
$(function(){
    $('#send').click(function(){
	$.getJSON('test.json',function(data){
	    $('#resText').empty();
	    var html = '';
	    $.each(data,function(commentIndex,comment){
		html +='<div class="comment"><h6>'
			+comment['username']+':</h6><p class="para">'
			+comment['content']+'</p></div>';
	    });
	    $('#resText').html(html);
	});
    })
})

$.ajax()方法
是 jquery最底层的ajax 实现
$.ajax(options)


6.序列化元素
serialize()
当表单元素很多时可采用这种写法:
$("#send").click(function(){
    $.get("get1.jsp",$("#form1").serialize(),function(data,textStatus){
	$("resText").html(data);
    })
})

即使表单中再增加字段,脚本仍然可以使用
需要注意,$.get()中的data参数不仅可以使用映射方式:
{
    name:$('#name').val(),
    content:$('#content').val()
}

也可以使用字符串方式:
"name="+encodeURIComponent($('name').value)
+"&content="+encodeURIComponent($('#content').val())


serializeArray()
将dom元素序列化后,返回json格式数据
$(function(){
    var fields = $(":checkbox,:radio").servializeArray();
    $.each(fields,function(i,field){
	$('#results').append(field.value+",");
    })
})

$param()
用来对一个数组或对象按照key/value进行序列化
var obj = {a:1,b:2,c:3};
var k = $.param(obj);
alert(k); //输出a=1&b=2&c=3


jquery中的ajax全局事件
jquery简化ajax操作不仅体现在调用ajax方法和处理响应方面,而且还体现在对调用ajax方法的

过程中的http请求的控制。
请求开始时会触发ajaxStart()方法的回调函数;当请求结束时会触发ajaxStop()方法的回调函数
<div id="loading">加载中..</div>
$("#loading").ajaxStart(function(){
    $(this).show();
})
$("#loading").ajaxStop(function(){
    $(this).hide();
})

ajaxComplete(callback) ajax请求完成时执行的函数
ajaxError(callback) ajax请求发生错误时执行的函数,捕捉到错误可以作为最后一个参数传递
ajaxSend(callback) ajax请求发送前执行的函数
ajaxSuccess(callback) ajax请求成功时执行的函数

如果 想使某个ajax请求不受全局方法的影响,那么可以在使用$.ajax(options)方法时,将参数

中的global设置为false:
$.ajax({
    url:"test.html",
    global:false
})

分享到:
评论

相关推荐

    jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Object.success,但后台能够返回数据,原代码如下: var source=[]; $.ajax({ ...

    Jquery中AJAX的详细参数列表中文WORD版

    资源名称:Jquery中AJAX的详细参数列表 中文WORD版内容简介:本文档主要讲述的是Jquery中AJAX的详细参数列表;Jquery中使用AJAX非常简单,也分成方便,Jquery会自动根据内容选择post还是get方式提交数据,并且还会...

    41.jQuery中Ajax和原生js实现Ajax的关系.avi

    jQuery中Ajax和原生js实现Ajax的关系

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    jQuery中的AJAX请求是一种非常常见的前端异步数据交互方式,它的作用是使得页面无需重新加载即可向服务器请求数据,并将数据动态地加载到页面中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...

    Jquery Ajax分页(有实例)

    **jQuery AJAX分页技术详解** 在Web开发中,分页是一种常见的数据展示方式,它能够有效地组织大量数据,提高页面加载速度,优化用户体验。jQuery,一个轻量级、功能丰富的JavaScript库,结合AJAX(异步JavaScript和...

    Java面试题41.jQuery中Ajax和原生js实现Ajax的关系.mp4

    Java面试题41.jQuery中Ajax和原生js实现Ajax的关系.mp4

    JQuery中Ajax的异步调用 示例

    JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,一个关于在js中通过JQuery实现异步无...

    JQuery中ajax,get方法在ashx,aspx,asmx中的使用

    JQuery中ajax,get方法在ashx,aspx,asmx中的使用,分别是在aspx页面,ashx页面,webService页面三种列举了案例,分别使用了GET和POST两种方式的请求,请求类型类型包含有text,json,xml.本案例全面,内容基础易懂,特别适合...

    Ajax+JQuery应用Demo

    工作之余写的一些Ajax应用,有6个Demo,数据库为mysql,使用之前看readme.txt。javascript与jquery混用。无刷新购物车、输入提示、表格局部刷新、xml实时数据更新、划词解释。

    jquery-ajax教程

    这里仅需一行代码就能完成原始Ajax中多行代码才能实现的功能。 #### 四、jQuery Ajax函数详解 jQuery提供了一系列Ajax相关的函数,这些函数具有丰富的选项和回调机制,可以满足各种复杂的Ajax需求。主要包括: 1....

    jquery,ajax的几个小例子

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

    基于jQuery的Ajax聊天室程序

    在这个聊天室程序中,jQuery库被用来简化Ajax的使用,使得开发者能更轻松地实现这一功能。 1. **jQuery**:jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。在本聊天室...

    Jquery跨域Ajax请求测试

    在"JqueryWebServiceTestDemo"这个示例中,可能包含了完整的前端HTML、CSS和JavaScript文件,以及可能的服务端接口文档或示例代码,用于演示如何在实际项目中运用jQuery进行跨域Ajax请求。通过学习和运行这个示例,...

    老裴帮助关于Jquery中Ajax的常用方式

    最后,`JqueryAjax.jsp`可能是示例代码或教程中的一个页面,它可能包含有关如何在JSP环境中使用jQuery Ajax的实例。在学习和实践中,结合具体的代码示例,可以更好地理解Ajax在jQuery中的应用。记得在实际项目中,应...

    Asp.Net MVC之jQuery与AJAX操作实例

    在Asp.Net MVC框架中,jQuery和AJAX的结合使用极大地提升了用户体验,使得网页能够实现异步数据交互,无需刷新整个页面即可完成数据的增删查改操作。本实例将深入探讨如何在Asp.Net MVC项目中应用jQuery与AJAX。 一...

    jQuery-ajax-用户名异步请求

    在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理以及Ajax交互。本主题聚焦于jQuery中的Ajax功能,特别是如何利用它进行异步用户名验证。Ajax,即Asynchronous JavaScript and ...

    ajax、javascript、jquery详细课件

    在Ajax中,通常包括以下步骤:创建XMLHttpRequest对象、打开连接、发送请求和处理响应。 **JavaScript** JavaScript是一种轻量级的解释型编程语言,主要用于网页和网络应用开发。它是Web开发的基础,用于实现...

    jquery-ajax实例

    AJAX(异步JavaScript和XML)技术在现代Web开发中扮演着关键角色,而jQuery的ajax方法则提供了简洁的API来实现这一功能。 首先,我们来看`bean - json`的转化。在Web服务中,我们经常需要在服务器端处理Java Bean...

    jquery中ajax使用error调试错误的方法

    本文实例讲述了jquery中ajax使用error调试错误的方法。分享给大家供大家参考。具体分析如下: JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,我们在Ajax项目中,遇到ajax异步获取数据出错...

    JQuery+AJAX实现用户名验证

    在IT行业中,前端开发是构建动态网页应用的关键环节,而jQuery和AJAX是其中不可或缺的工具。本篇文章将深入探讨如何使用jQuery与AJAX技术来实现一个简单的用户名验证功能,以此来确保用户输入的用户名的独特性。这个...

Global site tag (gtag.js) - Google Analytics