第6章 jQuery中的Ajax应用
2013-11-18 20:55
302 查看
Ajax的概念:客户端js所引起的http请求代号(是JavaScript,XML,XMLHttpRequest等各项技术的综合应用)
Ajax的特点:无刷新的数据更新,不能跨域访问
Ajax的核心是:XMLHttpRequest对象.
Ajax示例:
JQuery中的Ajax
jQuery对Ajax操作进行了三层封装:
1 $.ajax()方法,属于最底层的方法,因此可以代替第二三层的所有方法
2 第2层是load(), $.get(), $.post()三个方法
3 第3层是$.getScript()和$.getJSON()方法
一般随着层数的递增,调用越简单
jQuery.ajax()方法: $.ajax(options)
options中包含了的常用参数有
url:发送请求的地址
type:请求方式
data:发送到服务器的数据,一般是json格式(即Key/Value格式),如:{"stuname":"张三","stuAge":"20"}
dataType:服务器返回的数据类型
success:请求成功后的回调函数
jQuery.get()方法和jQuery.post()方法: $.get/post(url,[data],[callback],[type]);
它们之间的区别:get()在服务器端用QueryString[]获取值
post()用json格式传参,在服务器端用Form[]取值.
JQuery中的load()方法: load([data],[callback])
一般利用它去加载指定的页面或内容
jQuery中的$.getScript()方法和$.getJSON()方法
$.getScript/getJSON(url,callback) url=>待载入的js文件或json文件
序列化元素:serialize(),serializeArray()和$.param()方法.
$.param是serialize()方法的核心,将一个数组或对象按照key/value进行序列化,例:
var obj={a:1, b:2, c:3};
var k=$.param(obj);
serialize()序列化后返回字符串.
serializeArray():与serialize()类似,但它返回json对象
jQuery中的Ajax全局事件
ajaxSend(callback):AJAX请求发送前执行的函数
ajaxError(callback):AJAX请求发生错误时执行的函数
ajaxSuccess(callback):AJAX请求成功时执行的函数
ajaxComplete(callback):AJAX请求完成时执行的函数
Ajax的特点:无刷新的数据更新,不能跨域访问
Ajax的核心是:XMLHttpRequest对象.
Ajax示例:
var xmlHttpReq=new XMLHttpRequest(); //创建XMLHttpRequest对象 xmlHttpReq.open("get","firstHandler.ashx",true); //调用open()方法,true=>采用异步方式 xmlHttpReq.onreadystatechange=function(){ //设置回调函数 if(xmlHttpReq.readyState==4&&xmlHttpReq.status==200) //监控状态的返回 { alert(xmlHttpReq.responseText); //输出从服务器接受的数据 } } xmlHttpReq.send(); //发送HTTP请求
JQuery中的Ajax
jQuery对Ajax操作进行了三层封装:
1 $.ajax()方法,属于最底层的方法,因此可以代替第二三层的所有方法
2 第2层是load(), $.get(), $.post()三个方法
3 第3层是$.getScript()和$.getJSON()方法
一般随着层数的递增,调用越简单
jQuery.ajax()方法: $.ajax(options)
options中包含了的常用参数有
url:发送请求的地址
type:请求方式
data:发送到服务器的数据,一般是json格式(即Key/Value格式),如:{"stuname":"张三","stuAge":"20"}
dataType:服务器返回的数据类型
success:请求成功后的回调函数
//示例1: $(function () { $("#btnSend").click(function () { $.ajax({ url: "http://localhost:1105/$ajax_post/Handler.ashx", dataType: "text", type: "post", data: { "stuName": "张三", "stuAge": "22", "stuSex": "男" }, success: function (data) { alert(data); } }); }); }); //示例2: $(function () { $("#btnGetClass").click(function () { $.ajax({ type: "post", url: "http://localhost:1105/Handler.ashx", dataType: "JSON", timeout: 2000, error: function () { alert("数据加载错误"); }, success: function (data) { $("#ddlClass").empty(); //每次加载时清空下拉框 $("<option>" + "--请选择--" + "</option>").appendTo("#ddlClass"); //加载时设置下拉框的第一项为请选择 $.each(eval(data), function (i, item) { $("<option>" + item["Classname"] + "</option>").attr("value", item["ClassID"]).appendTo($("#ddlClass")); //从服务器获取数据并追加到下拉框中 }) } }) }); });
jQuery.get()方法和jQuery.post()方法: $.get/post(url,[data],[callback],[type]);
它们之间的区别:get()在服务器端用QueryString[]获取值
post()用json格式传参,在服务器端用Form[]取值.
//示例: $(function(){ $("#btnSend").click(function(){ $.get("MyHandler.ashx", { username:$("#txtusername").val(), contact:$("#txtContact").val(), message:$("#txtmessage").val() },function(data,textStatus){ $("#divContent").append(data); //把返回的数据追加到div中 alert(textStatus); //返回请求状态 } ); }); });
JQuery中的load()方法: load([data],[callback])
一般利用它去加载指定的页面或内容
//示例: $(function(){ $("#btnLoad").click(funtion(){ var url=$("#txtUrl").val(); $("#txtComment").load(url); }); });
jQuery中的$.getScript()方法和$.getJSON()方法
$.getScript/getJSON(url,callback) url=>待载入的js文件或json文件
//示例: $(function(){ $("#btnLoad").click(funtion(){ $.getJSON("student.json", //引入事先写好的名为"student"的json文件 function(data){ $.each(data,function(i,item){ //$.each()通用遍历方法,遍历对象和数组 alert(item.stuName+" "+item.stuAge+" "+item.stuSex); }); } ); }); });
序列化元素:serialize(),serializeArray()和$.param()方法.
$.param是serialize()方法的核心,将一个数组或对象按照key/value进行序列化,例:
var obj={a:1, b:2, c:3};
var k=$.param(obj);
serialize()序列化后返回字符串.
serializeArray():与serialize()类似,但它返回json对象
jQuery中的Ajax全局事件
ajaxSend(callback):AJAX请求发送前执行的函数
ajaxError(callback):AJAX请求发生错误时执行的函数
ajaxSuccess(callback):AJAX请求成功时执行的函数
ajaxComplete(callback):AJAX请求完成时执行的函数
相关文章推荐
- jquery各类资源整理
- jQuery选择器大全
- jquery tree table js 试用
- Jquery动态给表格添加、删除行
- Jquery学习2---倒计时
- jquery 获取和设置 select下拉框的值
- jQuery的ajax submit的使用
- jquery选择器之伪类选择器
- jquery ajax回调函数中实现按钮置灰倒计时
- jQuery代码性能小细节
- jquery选择器之属性选择器
- jquery_事件与动画
- Jquery 插件开发公开属性顺序的影响.
- jquery---- 数组根据值进行删除
- jQuery 表单验证 ------好博文
- jQuery中return false,e.preventDefault(),e.stopPropagation()的区别
- jQuery 常用框架 插件
- keleyi菜单0.1.5版本发布了
- jQuery的.bind()、.live()和.delegate()之间区别
- Jquery取得iframe下内容的方法