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时可以 ...
随机推荐
- HDU 3501 Calculation 2(欧拉函数)
Calculation 2 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submi ...
- Jmeter -- 初体验
一.Jmeter参数 在命令行输入Jmeter --help得到以下信息: To run Apache JMeter in GUI mode:Double-click on the ApacheJMe ...
- 在Word中直接用快捷键查找选中文本
在word中选中文本后按Ctrl+F,有些时候选中文本会自动出现在“查找内容”文本框中,而有些时候显示的还是上次选中的文本.这是因为只有当Word认为选中的文本是一个“词”时,选中文本才会自动出现在“ ...
- 百度地图V1.5 LocalSearch增加浮动窗体的操作内容
1.初始化LocalSearch控件 LocalSearch = new BMap.LocalSearch(map, { renderOptions : { map : map, panel : & ...
- IEEE发布2016年度编程语言排行榜
C 语言占据榜首,但大数据类是最大赢家. IEEE Spectrum 的第三次"最受欢迎编程语言"交互式排行榜新鲜出炉.因为不可能顾及到每一个程序员的想法,Spectrum 使用多 ...
- Segment(技巧 相乘转换成相加 + java)
Segment Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- Android设备定制为永不锁屏
Android系统的锁屏时间存放在Setting数据库中,字段为Settings.System.SCREEN_OFF_TIMEOUT.查看 DatabaseHelper.java文件可以找到: fra ...
- CentOS 5.7 中文乱码问题解决方案
一.安装中文支持: # yum install "@Chinese Support" 二.用 yum 安装中文字体 #yum install fonts-chinese.noarc ...
- 那些 Cynthia 教我的事 之 PMSec (一)
一.ViewState的使用 在项目中,我一直在用Common的方法读取一些信息,但是Cynthia习惯将它存入ViewState中. ViewState 它是由ASP.NET页面框架管理的一个隐藏的 ...
- W3C-XML
XML XML Extensible Markup Language,可扩展标记语言 1 XML和HTML的区别 XML主要用来传输数据 HTML主要用来呈现数据内容 2 XML的主要用途 传输数据 ...