ajax then fail done,我应该使用.done()和.fail()来获取新的jQuery AJAX代码而不是成功和错误...
我这样编码:
$.ajax({ cache: false,
url:"/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});
但是当我最后查看jQuery .ajax()文档时,似乎建议我应该像下面这样编码,或者至少建议添加.done()和.fail():
var request = $.ajax({ cache: false,
url:"/Admin/Contents/GetData",
data: { accountID: AccountID }
});
request.done(function (data) {
xxx;
});
request.fail(function (jqXHR, textStatus) {
xxx;
});
更新
如果我这样的代码是相同的,还是有一些优势将它分成三个?
$.ajax({ cache: false,
url:"/Admin/Contents/GetData",
data: { accountID: AccountID }
}).done(function (data) {
xxx;
}).fail(function (jqXHR, textStatus) {
xxx;
});
如user2246674所述,使用success和error作为ajax函数的参数是有效的。
为了与先前的答案保持一致,阅读文档:
Deprecation Notice:
The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks will be deprecated in jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.
如果您正在使用回调操作函数(例如,使用方法链接),请使用.done(),.fail()和.always()而不是success(),error()和complete()。
这就是我的想法,但是当我发布一些关于状态代码的问题时,即使在我做完之后也没有人提到过这个问题。
@Gemma相信开发团队,如果他们说可能会在将来的版本中删除它,并且最好使用新的,使用新的。
谢谢,是的,我将使用新的方式。你最后看到了我的更新吗?我想知道我的最后一个代码片段是否是最好的方法。我不确定将代码分解成三个的优点是什么。
@Gemma它会做同样的事情,它是一种名为en.wikipedia.org/wiki/Method_chaining的编码技术,有使用它的优点和缺点。您可以查看此信息:stackoverflow.com/questions/1103985/
我不同意。这些引用讨论了回调操作函数(例如.error,.success),这些函数被弃用以支持更通用的Deferred模式,但是ajax方法的参数不被弃用且既有效又可接受 - 甚至在jQuery 1.9 / 2.0中!在所有当前形式中,ajax仍然返回延迟;可能已经附加的延迟回调。
@ user2246674你是对的,已经有一段时间我一定误读了这个问题。我纠正了答案,如果你认为应该随意加强答案。
这是jQuery 1.9,成功:,错误:,完成:仍然可用。但是,我的问题是,.done()==成功:?
@GregoryLewis来自JQuery 1.10源代码:jqXHR.success = jqXHR.done;。
老实说,我更喜欢success,fail,always。
哇,我也误读了文档。我确实认为$ .ajax的'成功'/'错误'选项被重写为'完成/失败'。它只是回调方法链。老实说,我认为他们也应该切换选项名称。那让我难过了好几个小时。
我想知道jQuery 3.x版本的相同内容。我应该使用done()和fail()或then()和catch()吗?
有人可以分享官方文件吗?我试过谷歌和他们的官方网站,但都失败了。
我想在@Michael Laffargue的帖子上添加一些内容:
jqXHR.done()更快!
jqXHR.success()在回调中有一些加载时间,有时可能会过度使用脚本。我发现之前很难。
更新:
使用jqXHR.done(),jqXHR.fail()和jqXHR.always()可以更好地使用ajax请求进行操作。通常,您可以在某个变量或对象中定义ajax,并在代码的任何部分使用该变量或对象,以更快地获取数据。好例子:
/* Initialize some your AJAX function */
function call_ajax(attr){
var settings=$.extend({
call : 'users',
option : 'list'
}, attr );
return $.ajax({
type:"POST",
url:"//exapmple.com//ajax.php",
data: settings,
cache : false
});
}
/* .... Somewhere in your code ..... */
call_ajax({
/* ... */
id : 10,
option : 'edit_user'
change : {
name : 'John Doe'
}
/* ... */
}).done(function(data){
/* DO SOMETHING AWESOME */
});
你有任何可信和可核实的参考资料吗?
@PaulVargas我从未做过一些性能测试,但在我的练习中我发现这个有用。你可以自己尝试一下。
请提供任何信任的证据。
如您所知,与从函数返回一些对象相比,回调函数更慢。有时影响很小,但如果你有很多电话,有时可能会很大。
简单来说
$.ajax("info.txt").done(function(data) {
alert(data);
}).fail(function(data){
alert("Try again champ!");
});
如果它获取info.text然后它会提醒你和你添加的任何功能,或者如果有任何无法从服务器检索info.text然后提醒或错误功能。
ajax then fail done,我应该使用.done()和.fail()来获取新的jQuery AJAX代码而不是成功和错误...相关推荐
- ajax请求获取服务器数据,jquery.ajax发布从app引擎服务器获取数据的请求
为noob问题道歉...... 您好,如何使用jQuery.ajax从appengine服务器的Python端获取数据?我知道如何使用ajax和适当的处理程序将数据发送到服务器,但我想知道是否有人可以 ...
- ajax abort 原因,jquery ajax abort()方法
如果用户频繁点击ajax请求,除最后一个外都是无效的,趁早结束节省资源.也可能出现更严重的问题,最后一个发送的请求,响应未必是最后一个,有可能造成混乱.用jquery的abort方法,可以中途中止aj ...
- Asp.Net+Jquery.Ajax详解5-$.getScript
目录(已经更新的文章会有连接,从7月25日开始,每2到3天更新一篇): Asp.Net+Jquery.Ajax详解1-开篇(2012.07.25发) Asp.Net+Jquery.Ajax详解2-$. ...
- ajax中判空函数,jQuery Ajax成功函数数据为空?
我是ajax/php的新手并且学习它.我试图通过ajax传递php值,但是我无法从php文件获取响应变量到ajax.尽管ajax成功,但为什么数据或结果或php的响应是NULL.这里有什么缺失,我无法 ...
- java jquery ajax_[Java教程]jquery ajax 使用
[Java教程]jquery ajax 使用 0 2015-01-09 11:00:12 异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用JQuery框架实现的AJAX 验证用户名是否存在 ...
- 【SpringMVC笔记】Ajax 入门(jQuery.ajax)
Ajax Ajax 简介 伪造 Ajax(iframe标签) jQuery.ajax 使用 jQuery.ajax 案例 Ajax 执行流程 Ajax 异步加载数据案例 Ajax 验证用户名密码 获取 ...
- jquery ajax示例_jQuery AJAX JSP Servlet Java示例
jquery ajax示例 Ajax in Java JSP Servlet based web applications are very common. Recently I have writt ...
- ajax中怎样获取下拉列表,如何从Ajax/Jquery的下拉列表中获取复选框中的数据
这里是asnwer你可以做的是这样的 echo ''; echo 'Select User'; $sql = "SELECT * from users"; $res = mysql ...
- ajax中url如何使用,jQuery Ajax url使用方式
jQuery Ajax的使用场景: 页面需要通过后台逻辑,但只需要局部刷新以显示新的内容. jQuery Ajax url使用方式 1.servlet方式: 需要在struts.xml中写一个acti ...
最新文章
- Deep learning调参经验
- fabric 转账_Fabric 学习笔记-架构初探
- bugfix:MySQL内存使用率无限增长以及kill手法
- Linux函数--inet_pton / inet_ntop
- BZOJ4122 : [Baltic2015]File paths
- linux ftp中文乱码方块,Ubuntu下NetBeans中文乱码及方框问题的解决方法
- Python练习:百分制到五级制的转换
- 【优化算法】Iterative映射和单纯形法的改进灰狼优化算法(SMIGWO)【含Matlab源码 1746期】
- php 检测移动设备,Github项目Mobile-Detect-检测移动设备的php类
- afp专用计算机,FRM考试只能用这些金融计算器(内含用法功能全解读)
- jQuery插件及表单验证
- 按照计算机病毒存在,下列选项中,不属于按照计算机病毒存在的方式分类的是()。 - 问答库...
- matlab如何生成极坐标,如何在matlab中极坐标画图
- html插入背景图片如何拉伸,css怎样拉伸背景图片?
- 帆软报表更新到服务器控件展示不出来_报表工具软件FineReport常见问题与解答总结...
- dev hdb2在linux中表示,Linux磁盘分区基础
- 单片机补充案例--两只老虎
- 支付宝支付接口调用实现支付功能
- 单片机:中断系统控制二极管的亮灭
- mysql串口转网口_串口、COM口、UART口, TTL、RS-232、RS-485有啥区别