我这样编码:

$.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代码而不是成功和错误...相关推荐

  1. ajax请求获取服务器数据,jquery.ajax发布从app引擎服务器获取数据的请求

    为noob问题道歉...... 您好,如何使用jQuery.ajax从appengine服务器的Python端获取数据?我知道如何使用ajax和适当的处理程序将数据发送到服务器,但我想知道是否有人可以 ...

  2. ajax abort 原因,jquery ajax abort()方法

    如果用户频繁点击ajax请求,除最后一个外都是无效的,趁早结束节省资源.也可能出现更严重的问题,最后一个发送的请求,响应未必是最后一个,有可能造成混乱.用jquery的abort方法,可以中途中止aj ...

  3. Asp.Net+Jquery.Ajax详解5-$.getScript

    目录(已经更新的文章会有连接,从7月25日开始,每2到3天更新一篇): Asp.Net+Jquery.Ajax详解1-开篇(2012.07.25发) Asp.Net+Jquery.Ajax详解2-$. ...

  4. ajax中判空函数,jQuery Ajax成功函数数据为空?

    我是ajax/php的新手并且学习它.我试图通过ajax传递php值,但是我无法从php文件获取响应变量到ajax.尽管ajax成功,但为什么数据或结果或php的响应是NULL.这里有什么缺失,我无法 ...

  5. java jquery ajax_[Java教程]jquery ajax 使用

    [Java教程]jquery ajax 使用 0 2015-01-09 11:00:12 异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用JQuery框架实现的AJAX 验证用户名是否存在 ...

  6. 【SpringMVC笔记】Ajax 入门(jQuery.ajax)

    Ajax Ajax 简介 伪造 Ajax(iframe标签) jQuery.ajax 使用 jQuery.ajax 案例 Ajax 执行流程 Ajax 异步加载数据案例 Ajax 验证用户名密码 获取 ...

  7. jquery ajax示例_jQuery AJAX JSP Servlet Java示例

    jquery ajax示例 Ajax in Java JSP Servlet based web applications are very common. Recently I have writt ...

  8. ajax中怎样获取下拉列表,如何从Ajax/Jquery的下拉列表中获取复选框中的数据

    这里是asnwer你可以做的是这样的 echo ''; echo 'Select User'; $sql = "SELECT * from users"; $res = mysql ...

  9. ajax中url如何使用,jQuery Ajax url使用方式

    jQuery Ajax的使用场景: 页面需要通过后台逻辑,但只需要局部刷新以显示新的内容. jQuery Ajax url使用方式 1.servlet方式: 需要在struts.xml中写一个acti ...

最新文章

  1. Deep learning调参经验
  2. fabric 转账_Fabric 学习笔记-架构初探
  3. bugfix:MySQL内存使用率无限增长以及kill手法
  4. Linux函数--inet_pton / inet_ntop
  5. BZOJ4122 : [Baltic2015]File paths
  6. linux ftp中文乱码方块,Ubuntu下NetBeans中文乱码及方框问题的解决方法
  7. Python练习:百分制到五级制的转换
  8. 【优化算法】Iterative映射和单纯形法的改进灰狼优化算法(SMIGWO)【含Matlab源码 1746期】
  9. php 检测移动设备,Github项目Mobile-Detect-检测移动设备的php类
  10. afp专用计算机,FRM考试只能用这些金融计算器(内含用法功能全解读)
  11. jQuery插件及表单验证
  12. 按照计算机病毒存在,下列选项中,不属于按照计算机病毒存在的方式分类的是()。 - 问答库...
  13. matlab如何生成极坐标,如何在matlab中极坐标画图
  14. html插入背景图片如何拉伸,css怎样拉伸背景图片?
  15. 帆软报表更新到服务器控件展示不出来_报表工具软件FineReport常见问题与解答总结...
  16. dev hdb2在linux中表示,Linux磁盘分区基础
  17. 单片机补充案例--两只老虎
  18. 支付宝支付接口调用实现支付功能
  19. 单片机:中断系统控制二极管的亮灭
  20. mysql串口转网口_串口、COM口、UART口, TTL、RS-232、RS-485有啥区别

热门文章

  1. CTF 音频隐写 大总结
  2. 人工智能---梯度下降的原理和手写实现
  3. 从0开始的网络学习——IP、DNS、服务器
  4. 【蓝牙mesh】蓝牙Mesh的三种Model
  5. 数据库:怎样判断关系是第几范式
  6. 可空类型NullableT小结
  7. upupw mysql崩溃_安装UPUPW后出现SQL语句运行错误解决办法
  8. 还在纠结通道数、位深度?实验带你看懂关于灰度图像,二值化图像,彩色图像、图片通道数,位深度的全部内容
  9. 一些常见的编程语言的选择
  10. 计算机的高级操作,计算机高级操作员考试大纲是什么