ajax函数有:1、“$(selector).load()”,用于把远程数据加载到被选的元素中;2、“$.ajax()”;3、“$.get()”;4、“$.post()”;5、“$.getJSON()”;6、“$.getScript()”。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。 AJAX 请求函数
(url) 被加载的数据的 URL(地址) (data) 发送到服务器的数据的键/值对象 (callback) 当数据被加载时,所执行的函数 (type) 被返回的数据的类型 (html,xml,json,jasonp,script,text) (options) 完整 AJAX 请求的所有键/值对选项 一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个参数为服务器的状态,是可选参数。 而其中,服务器返回数据的格式其实是字符串形势,并不是我们想要的json数据格式,在此引用只是为了对比说明 $.get("data.php",$("#firstName.val()"),function(data){
$("#getResponse").html(data); }//返回的data是字符串类型
);二,$.post(url,[data],[callback],[type]) 说明:这个函数跟$.get()参数差不多,多了一个type参数,type为请求 的数据类型,可以是html,xml,json等类型,如果我们设置这个参数为:json,那么返回的格式则是json格式的,如果没有设置,就 和$.get()返回的格式一样,都是字符串的 $.post("data.php",$("#firstName.val()"),function(data){
$("#postResponse").html(data.name);
},"json"//设置了获取数据的类型,所以得到的数据格式为json类型的
);三,$.ajax(opiton) 说明:$.ajax()这个函数功能强大,可以对ajax进行许多精确的控制,需要详细说明的请参照相关资料 $.ajax({
url: "ajax/ajax_selectPicType.aspx",
data:{Full:"fu"},
type: "POST",
dataType:'json',
success:CallBack,
error:function(er){
BackErr(er);}
});四,$.getJSON(url,[data],[callback]) $.getJSON("data.php",$("#firstName.val()"),function(jsonData){
$("#getJSONResponse").html(jsonData.id);}//无需设置,直接获取的数据类型为json,所以调用时需要使用jsonData.id方式
);When Ajax meets jQuery 基于AJAX的应用现在越来越多,而对于前台开发人员来说,直接和底层的HTTPRequest打交道又不是一件令人愉快的事情。jQuery既然封装了 JavaScript,肯定已经考虑过AJAX应用的问题。的确,如果用jQuery写AJAX会比直接用JS写方便N倍。(不知道用jQuery长了, 会不会丧失对JS的知识了……) 这里假设大家对jQuery语法已经比较熟悉,来对ajax的一些应用作一些总结。 载入静态页面 load( url, [data], [callback] ); load()方法可以轻松载入静态页面内容到指定jQuery对象。 $('#ajax-p').load('data.html');这样,data.html的内容将被载入到ID为ajax-p的DOM对象之内。你甚至可以通过制定ID来实现载入部分内容的Ajax操作,如: $('#ajax-p').load('data.html#my-section');实现GET和POST方法 get( url, [data], [callback] )
很显然这是一个专门实现GET方式的函数,使用起来也相当的简单 $.get('login.php', {
id : 'Robin',
password: '123456',
gate : 'index'
}, function(data, status) {
//data为返回对象,status为请求的状态
alert(data);
//此时假设服务器脚本会返回一段文字"你好,Robin!",
那么浏览器就会弹出对话框显示该段文字
alert(status);
//结果为success, error等等,但这里是成功时才能运行的函数
});post( url, [data], [callback], [type] )
同样是jQuery提供的一个简便函数,其实用法 $.post('regsiter.php', {
id:'Robin',
password: '123456',
type:'user'
},function(data, status) {
alert(data);
}, "json");事件驱动的脚本载入函数:getScript() getScript( url, [callback] )
getScript()函数可以远程载入JavaScript脚本并且执行。这个函数可以跨 域载入JS文件(神奇……?!)。这个函数的意义是巨大 的,它可以很大程度的缩减页面初次载入的代码量,因为你可以根据用户的交互来载入相应的JS文件,而不必在页面初始化的时候全部载入。 $.getScript('ajaxEvent.js', function() {
alert("Scripts Loaded!");
//载入ajaxEvent.js,并且在成功载入后显示对话框提示。
});构建数据通讯的桥梁:getJSON() getJSON(url,[data],[callback])
JSON是一种理想的数据传输格式,它能够很好的融合与JavaScript或其他宿主语 言,并且可以被JS直接使用。使用JSON相比传统的通过 GET、POST直接发送”裸体”数据,在结构上更为合理,也更为安全。至于jQuery的getJSON()函数,只是设置了JSON参数的 ajax()函数的一个简化版本。这个函数也是可以跨域使用的,相比get()、post()有一定优势。另外这个函数可以通过把请求url写 成”myurl?callback=X”这种格式,让程序执行回调函数X。 $.getJSON('feed.php',{
request: images,
id: 001,
size: large
}, function(json) {
alert(json.images[0].link);
//此处json就是远程传回的json对象,假设其格式如下:
//{'images' : [
// {link: images/001.jpg, x :100, y : 100},
// {link: images/002.jpg, x : 200, y 200:}
//]};
}
);更底层的ajax()函数 虽然get()和post()函数非常简洁易用,但是对于更复杂的一些设计需求还是无法实现,比如在ajax发送的不同时段做出不同的动作等。jQuery提供一个更为具体的函数:ajax()。 ajax( options ) ajax()提供了一大票参数,所以可以实现相当复杂的功能。
你可以指定xml、script、html、json作为其数据类型,可以为beforeSend、error、sucess、complete等状态设置 处理函数,众多其它参数也可以订完完全全定义用户的Ajax体验。下面的例子中,我们用ajax()来调用一个XML文档: $.ajax({
url: 'doc.xml',
type: 'GET',
dataType: 'xml',
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(xml){
alert(xml);
//此处xml就是XML的jQuery对象了,你可以用find()、next()或XPath等方法在里面寻找节点,
和用jQuery操作HTML对象没有区别
}
});进一步了解AJAX事件 前面讨论的一些方法都有自己的事件处理机制,从页面整体来说,都只能说是局部函数。jQuery提供了AJAX全局函数的定义,以满足特殊的需求。下面是jQuery提供的所有函数(按照触发顺序排列如下):
$("#loading").ajaxStart(function(){
$(this).show();
});全局事件也可以帮助你编写全局的错误相应和成功相应,而不需要为每个AJAX请求独立设置。有必要指出,全局事件的参数是很有用的。除了 ajaxStart、ajaxOptions,其他事件均有event, XMLHttpRequest, ajaxOptions三个参数。第一个参数即事件本身;第二个是XHR对象;第三个是你传递的ajax参数对象。在一个对象里显示全局的AJAX情况: $("#msg").beforeSend(function(e,xhr,o) {
$(this).html("正在请求"+o.url);
}).ajaxSuccess(function(e,xhr,o) {
$(this).html(o.url+"请求成功");
}).ajaxError(function(e,xhr,o) {
$(this).html(o.url+"请求失败");
});很显然,第三个参数也可以帮助你传递你在AJAX事件里加入的自定义参数。 在单个AJAX请求时,你可以将global的值设为false,以将此请求独立于AJAX的全局事件。 $.ajax({
url: "request.php",
global: false,
// 禁用全局Ajax事件.
});如果你想为全局AJAX设置参数,你会用上ajaxSetup()函数。例如,将所有AJAX请求都传递到request.php,;禁用全局方法;强制用POST方法传递: $.ajaxSetup({
url: "request.php",
global: false,
type: "POST"
});【相关教程推荐:AJAX视频教程】 以上就是ajax函数有哪些的详细内容,更多请关注模板之家(www.mb5.com.cn)其它相关文章! |
