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时可以 ...
随机推荐
- eclipse 使用mvn模块化开发
1.创建maven父工程步骤:new-->other-->选择maven project-->next-->勾选create a simple project-->nex ...
- 十、装饰(Decorator)模式 --结构模式(Structural Pattern)
装饰(Decorator)模式又名包装(Wrapper)模式[GOF95].装饰模式以对客户端透明的方 式扩展对象的功能,是继承关系的一个替代方案. 装饰模式类图: 类图说明: 抽象构件(Compon ...
- asm_c515c.uew
/L20"ASM for C515C" Nocase Line Comment = ; String Chars = "' DisableMLS File Extensi ...
- 扩展ArcGIS API for Silverlight/WPF 中的TextSymbol支持角度标注
原文 http://blog.csdn.net/esricd/article/details/7587136 在ArcGIS API for Silverlight/WPF中原版的TextSymbol ...
- LeeCode-Sort Colors
Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...
- Android中调用C++函数的一个简单Demo
这里我不想多解释什么,对于什么JNI和NDK的相关内容大家自己去百度或谷歌.我对Android的学习也只是个新手.废话少说直接进入正题. 一.在Eclipse中创建一个Android Applicat ...
- MyCat 介绍、分片规则、调优的内容收集
一.MyCat的简介 MyCat高可用.负载均衡架构图: 详细知识点: MySQL分布式集群之MyCAT(一)简介(修正) 二.MyCat的schema.xml讲解 详细知识点:MySQL分布式集群 ...
- wpf msdn在线地址http://msdn.microsoft.com/zh-cn/library/ms752324(v=vs.110).aspx
http://msdn.microsoft.com/zh-cn/library/ms752324(v=vs.110).aspx
- 每日一发linux命令
很多用虚拟机的同学在向/tmp目录下进行解压的时候,会发现之前挂载的此目录空间不足,导致下一步无法进行(我在vmwaretools解压的时候就遇到了这个problem)…… 实际上,/tmp是可以进行 ...
- PHP学习笔记1.1——date()函数的多种用法,取出各种不同格式的时间,非常全面
语法格式:date(string format.int timestamp); 参数一:format指定输出的日期和时间的格式,具体的参见下表; 参数二:timestamp是可选参数,是时间戳,如果不 ...