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的更多相关文章

  1. 论如何把JS踩在脚下 —— JQuery基础及Ajax请求详解

    一.什么是JQuery? JQuery是一种JavaScript框架,是一堆大神搞出来的能够让前端程序猿敲更少代码.实现更多功能的工具(在此,跪谢各位JQuery开发大大们!!!).JQuery的使用 ...

  2. jQuery基础(Ajax,load(),getJSON(),getScript(),post(),ajax(),同步/异步请求数据)

    1.使用load()方法异步请求数据   使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为:   load(url,[data],[callba ...

  3. jQuery基础---Ajax基础教程(二)

    jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一篇中, ...

  4. jQuery基础---Ajax基础教程

    jQuery基础---Ajax基础 内容提纲: 1.Ajax 概述 2.load()方法 3.$.get()和$.post() 4.$.getScript()和$.getJSON() 5.$.ajax ...

  5. jQuery基础---Ajax进阶

    原文:jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一 ...

  6. 【jQuery基础学习】05 jQuery与Ajax以及序列化

    好吧,这章不像上章那么水了,总是炒剩饭也不好. 关于AJAX 所谓Ajax,全名Asynchronous JavaScript and XML.(也就异步的JS和XML) 简单点来讲就是不刷新页面来发 ...

  7. jQuery基础课程

    环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...

  8. jQuery基础之选择器

    摘自:http://www.cnblogs.com/webmoon/p/3169360.html jQuery基础之选择器 选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Aja ...

  9. 关于jQuery中的ajax的方法介绍

           jQuery提供一系列Ajax函数方便我们调用Ajax, 其中最核心也是最复杂的是jQuery.ajax(),所有的其他Ajax函数都是它的一个简化调用.当我们想要完全控制Ajax时可以 ...

随机推荐

  1. #1042 - Can't get hostname for your address

    my.ini 或 my.cnf 末尾添加 skip-name-resolve 并重启MySQL服务器 ok!

  2. Keil C51 与 ARM 并存的方法

    很多朋友都在想,怎么让keil C51与ARM能够并存使用.有安装经验的朋友都知道,安好C51后再安ARm,C51不能正常工作:安好ARM后再安C51,ARM不能正常工作. 网上也有相关解决办法,不过 ...

  3. C# Stopwatch类_性能_时间计时器

    在研究性能的时候,完全可以使用Stopwatch计时器计算一项技术的效率.但是有时想知道某想技术的性能的时候,又常常想不起可以运用Stopwatch这个东西,太可悲了. 属性: Elapsed 获取当 ...

  4. 瑞柏匡丞:用全局观开发App

    不管是互联网金融还是生活服务,移动端APP开发都是各大商家关注的重点.众多研发机构的涌入,使得APP的市场环境已经再无技术壁垒可言.在APP市场中,神州锐达的研发水准和客户认同度,一直受到业内人士的称 ...

  5. Mod_Python中文文档

    Mod_Python中文文档 mod_python中文文档

  6. HDU 1695 GCD 欧拉函数+容斥定理

    输入a b c d k求有多少对x y 使得x在a-b区间 y在c-d区间 gcd(x, y) = k 此外a和c一定是1 由于gcd(x, y) == k 将b和d都除以k 题目转化为1到b/k 和 ...

  7. andorid 控件 Bootstrap3.0风格的控件 精美UI控件库

    Bootstrap是Twitter推出的一个开源的用于前端开发的工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架.Bootstra ...

  8. 从一段代码看fork()函数及其引发的竞争

    首先来看一段从<UNIX环境高级编程>中摘录的一段很有意思的代码.借此我们再来谈谈fork()函数的一些问题. #include "apue.h" static voi ...

  9. Android混淆配置文件规范

    #打开project.properties文件中的proguard.config. -optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassna ...

  10. [转]如何正确清理C盘

    转自微软的Answers网站. 以下是推荐使用的方法,安全且不会误删有用的系统文件 1.尽量不要在C盘安装应用软件,在软件安装时,一般可以手动指定安装路径,您可以将软件指定安装到其他盘符. 在使用它们 ...