Jquery基础之ajax
ajax是Asynchronous JavaScript and XML(异步JavaScript和XML)的简称,ajax并不是单一的技术而是利用一系列交互网页应用相关的技术形成的结合体,ajax揭开了无刷新更新页面的全新时代。
ajax优点:不需要插件支持、优秀的用户体验、提高Web程序的性能、减轻服务器和宽带的负担。缺点:浏览器支持度不足、破浏览器前进后退按钮的正常功能、对搜索引擎的支持不足、开发和调试工具缺乏。
Jquery对ajax操作进行了封装,ajax主要的几种方法是load()、$.get()、$.post()、$.getScript()、$.getJSON()、$.ajax()。
1、load()方法
load方法是ajax中最简单的最常用的ajax方法能够加载静态html代码到DOM元素中,load结构如下:
load(url[,data][,callback]); 参数说明:url是ajax请求html的页面地址,data是键值形式[key=value]的数据传递,data决定了数据请求方式,如果data不为空则请求方式为post,否则为get。callback是ajax请求结束后的回调函数,无论请求成功失败都会执行,该函数有3个函数,分别代表请求返回的内容、请求状态和XMLHttpRequest对象。例:
$("#content").load("load.html", function (completeText, textStatus, XMLHttpRequest) {alert(completeText);alert(textStatus);alert(XMLHttpRequest);});
该示例使用load()方法为id为content的元素动态加载load.html页面中的html元素,由于没有指定data参数因此传递方式为get,回调结束后回调参数把请求返回内容、请求状态和XMLHttpRequest对象分别打印出来。
2、$.get()方法和$.post()方法
load方法通常用来从web服务器获取静态的数据文件,如果需要传递一些参数给服务器中的页面,可以使用$.get()或者$.post()方法。
$.get()方法使用GET方式来进行异步请求,方法结构为:
$.get(url [,data] [,callback] [,type])
参数说明:url请求获取数据的ULR地址,data发送到服务器的键值形式【key=value】的数据,在URL页面中会作为QueryString附加到请求的URL中。callback载入成功的回调函数,该函数有两个返回参数,分别是请求结果和状态。type服务器返回内容的格式,包括xml、html、script、json、text和_default。例:
$.get("getHand.ashx", { username: "uersname", pwd: "pwd" }, function (responseText, status) {alert(responseText);alert(status);},"text");
该示例住getHand.ashx一般处理页面传递用户名和密码并将处理的结束返回,在回调函数中返回打印出返回结果和操作状态。同时使用text指定了服务器返回结果是字符串形式的字符。
$.post()方法使用Post方式来进行异步请求,方法结构为
$.post(url [,data] [,callback] [,type])
参数同$.get()一样。示例:
$.get("getHand.ashx", { username: "uersname", pwd: "pwd" }, function (responseText, status) {alert(responseText);alert(status);},"text");
该示例和$.get()方法返回结果一样,只是在getHand.ashx处理文件中接收参数的方式发生了变化使用request["username"]获得参数。
$.post和$.get的区别:
1、Get请求将参数跟中url后进行传递;post请求将参数作为Http消息的实例内容发送给Web服务器。
2、get方式传输数据有大小限制【通常不能大于2KB】,而post方式传递的数量比Get方式大得多(理论上不受限制)。
3、get方式不的数据会被浏览器缓存起来,其他人可以从历史记录中读取到数据,get方式没有这个问题。
4、get方式和post方式传递的数据在服务器端获取的方式也不同,get方式使用queryString["paramname"]获取,post方式使用request["paramname"]方式获取。
3、$.getScript()方法
使用$.getScript()方法用来加载js文件像加载html代码一样简单,且不需要对js文件进行处理javascript会自动执行。方法结构如下:
$.getScript(url [,callback]);参数说明url是js文件路径,callback是文件加载完成后回调函数。例:
$("btnSubmit").click(function(){$.getScript("validation.js",function(){$("#form1").validate();});});
该示例再提交时候动态加载验证控件,在加载完成的回调函数中使用加载的控件验证id=form1的form表单中的元素。
4、$.getJSON()方法
$.getJSON()方法使用http的get方法从服务器获得json数据,结构如下:
$.getJSON(url [,data] [,callback]);url是请求的资源所在地址,data是传递到服务器的请求参数,callback是数据请求返回后的回调函数。例:
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});
该示例使用getJSON方法从test.js中加载json格式的数据,并将结果中第四个users的name打印出来。
5、$.ajax()方法。
ajax方法是最底层的Ajax实现,方法结构如下:
$.ajax(options);其中options可以指定以键值形式指定多个参数和回调函数信息,且所有参数都是可选的。常用参数如下:
| 参 数 名 称 | 参 数 类 型 | 参 数 说 明 |
| url | string | 发送请求的地址 |
| type | string | 请求方式(post或get),默认是get方式 |
| timeout | number | 设置请求超时时间(毫秒),此设置会覆盖$.ajaxSetUp()的全局设置 |
| data | object或string | 发送到服务器的数据,Get请求将附加在URL后。 |
| dataType | string | 预期服务器返回的数据类型,如果不指定Jquery会跟据HTTP包MIME信息返回responseXML或responseText,并做为回调函数参数传递。可用类型XML、html、script、json、jsonp、text |
| beforeSend | function | 发送请求前可以修改XMLHttpRequest对象的函数,在beforeSend中如果返回false可以取消本次Ajax请求。XMLHttpRequest是唯一的参数。 |
| complete | function | 请求完成后调用的回调函数无论成功失败均调用。参数XMLHttpRequest对象和一个描述成功请求类型的字符串。 |
| success | function | 请求成功后调用的回调函数,有两个参数一个是服务器返回数据由dataType参数处理。另一个是描述状态的字符串。 |
| error | function | 请求失败后调用的回调函数,有3个参数返回即:XMLHttpRequest对象、错误信息、捕获的错误对象 |
| global | bool | 默认是true表示是否触发全局Ajax事件。设置为false将不会触发全局Ajax事件。 |
例:
$.ajax({
url: './Hander/getHand.ashx',
data: { time: "000", tag: "111" },
dataType: "text",
beforeSend: function () { alert("before Send"); },
success: function (data, status) { alert(data); alert(status); }
});
6、序列化元素
在项目中表单是必不可少的,经常用来提供数据使用ajax技术提交数据到另一个页面中,如果表单中数据较多时候较复杂时候请用序列化元素方法处理表单中元素,序列化元素有三种方法serialize()方法、serializeArray()方法和param()方法。
serialize()方法把表单中的DOM元素序列化为字符串。例:
$.ajax({
url: './Hander/getHand.ashx',
data: $("#form1").serialize(),
dataType: "text",
beforeSend: function () { alert("before Send"); },
success: function (data, status) { alert(data); alert(status); }
});
使用serialize()方法使元素序列化为字符串形式提交到服务器端。
serializeArray()方法,该方法将元素序列化后返回Json数据。例:
$("#btnSerializeArray").click(function () {
var txt = $(":checkbox:checked").serializeArray();
$.each(txt, function (index, data) {
alert(data.value);
});
});
该示例当点击id=btnSerializeArray的按钮时候会把所有选中的checkbox元素序列化为Json数据,然后再使用$.each()方法遍历json数据并且打印数据值。
$.param()方法用来将数组或对象序列化为字符串形式,例:
var array1={a:1,b:2,c:3};var result=$.param(array1);alert(result);
该示例输出a=1&b=2&c=3;
Jquery基础之ajax的更多相关文章
- 论如何把JS踩在脚下 —— JQuery基础及Ajax请求详解
一.什么是JQuery? JQuery是一种JavaScript框架,是一堆大神搞出来的能够让前端程序猿敲更少代码.实现更多功能的工具(在此,跪谢各位JQuery开发大大们!!!).JQuery的使用 ...
- jQuery基础(Ajax,load(),getJSON(),getScript(),post(),ajax(),同步/异步请求数据)
1.使用load()方法异步请求数据 使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为: load(url,[data],[callba ...
- jQuery基础---Ajax基础教程(二)
jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一篇中, ...
- jQuery基础---Ajax基础教程
jQuery基础---Ajax基础 内容提纲: 1.Ajax 概述 2.load()方法 3.$.get()和$.post() 4.$.getScript()和$.getJSON() 5.$.ajax ...
- jQuery基础---Ajax进阶
原文:jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一 ...
- 【jQuery基础学习】05 jQuery与Ajax以及序列化
好吧,这章不像上章那么水了,总是炒剩饭也不好. 关于AJAX 所谓Ajax,全名Asynchronous JavaScript and XML.(也就异步的JS和XML) 简单点来讲就是不刷新页面来发 ...
- jQuery基础课程
环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...
- jQuery基础之选择器
摘自:http://www.cnblogs.com/webmoon/p/3169360.html jQuery基础之选择器 选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Aja ...
- 关于jQuery中的ajax的方法介绍
jQuery提供一系列Ajax函数方便我们调用Ajax, 其中最核心也是最复杂的是jQuery.ajax(),所有的其他Ajax函数都是它的一个简化调用.当我们想要完全控制Ajax时可以 ...
随机推荐
- JS 输出对象的属性以及方法[转载]
<script>var obj = {attribute:1,method:function() {alert("我是函数");}}for (var i in obj ...
- SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现
原文:SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft ...
- 【转】高通平台android 环境配置编译及开发经验总结
原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...
- Linux 搭建SVN 服务器
一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...
- bzoj1664 [Usaco2006 Open]County Fair Events 参加节日庆祝
Description Farmer John has returned to the County Fair so he can attend the special events (concert ...
- Eclipse插件Mylyn管理上下文任务管理
原文地址:http://www.ibm.com/developerworks/cn/java/j-mylyn1/ Mylyn 2.0,第 1 部分: 集成的任务管理 使用集成的 Eclipse 问题跟 ...
- 456. 132 Pattern
456. 132 Pattern Given an array of integers a1, a2, a3-an, judge if there exists the 132 pattern. 13 ...
- 【指数型母函数+非递归快速幂】【HDU2065】"红色病毒"问题
大一上学完数分上后终于可以搞懂指数型母函数了.. 需要一点关于泰勒级数的高数知识 题目在此: "红色病毒"问题 Time Limit: 1000/1000 MS (Java/Oth ...
- nat网络穿透整理笔记(思维导图)
mindmanger整理的,关于Nat穿透,图片太小,可以点击放大,单独看图片.
- textarea高度自适应问题
textarea中的文字如果过多,就会产生滚动条,一本分文本被遮盖住,不能看到所有的文本. 那么,如何才能让textarea的高度随输入内容多少,可以自动的改变高度呢? 解决思想: 1 利用conte ...