`
openxtiger
  • 浏览: 151156 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[Js++开发历程] Jquery的$.ajax().done().fail()之不可能的事情

    博客分类:
  • Js++
 
阅读更多

1.9 Jquery的$.ajax().done().fail()之不可能的事情

 

  Jquery的开发人员的确让人折服,当我看到以上的代码时,感觉非常疑惑。 所有的ajax代码都在ajax函数中运行,为什么done和fail的中的函数能被回调呢?

  很多人会认为Jquery的Deferred的效果,其实不然,因为ajax如果采用同步模式的,就会等待执行结果,根本等不了执行done函数注入。其实最为奥秘之处在于$.Callbacks的运行机制

  $.Callbacks如果memory时,会记录上一次运行的结果。

* memory: will keep track of previous values and will call any callback added

* after the list has been fired right away with the latest "memorized"

* values (like a Deferred)

 

所以ajax的执行结果会存储在 memory中,当调用done()注册回调函数,会立即执行此回调函数,并传入memory存储的数据。

 

2
0
分享到:
评论

相关推荐

    jquery $.post()的用法 传递json文本 客户端和服务器端相互传递

    jQuery 提供了多种 AJAX 方法来简化这一过程,其中 `$.post()` 是一种常用的方式来实现客户端向服务器端发送数据并接收响应。本文将详细探讨 `$.post()` 的使用方法,特别是在传递 JSON 数据时的应用。 #### 一、`$...

    Jquery $when done then的用法详解

    对于$.ajax请求来说,如果层级比较多,程序看起来会比较乱,而为了解决这种问题,才有了$when…done…fail…then的封装,它将$.ajax这嵌套结构转成了顺序平行的结果,向下面的$.ajax写法,看起来很乱 $.ajax({ url...

    $.ajax()方法详解

    使用$.ajax()方法时,可以结合jQuery的其他功能,如`.done()`、`.fail()`、`.always()`等,来处理请求的成功、失败和完成情况。同时,可以通过`$.ajaxSetup()`来设置全局的默认选项。 总的来说,$.ajax()方法是...

    jQuery 封装Ajax

    jQuery的Ajax方法返回Promise对象,可以使用`.done()`, `.fail()`, `.always()`等Promise方法进行链式调用,与现代JavaScript的Promise API保持一致。 ### 7. 跨域请求(CORS) 通过设置`xhrFields`和`jsonp`选项,...

    jquery1.x升级到最新版3.6,兼容旧版插件.zip

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。然而,随着时间的推移,jQuery也在不断更新以适应现代Web开发的需求,从1.x版本逐渐演进到最新的3.6版本...

    jQuery1.5之后的ajax共7页.pdf.zip

    【jQuery1.5之后的Ajax技术详解】 Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。自jQuery1.5版本以来,jQuery对Ajax功能进行了大量的优化和增强,使得...

    jquery 1.7.1----4. Jquery之Ajax

    例如,你可以使用`.done()`, `.fail()`, 和 `.always()` 方法来处理AJAX请求的成功、失败和无论成功或失败都要执行的回调。 此外,jQuery的AJAX方法还支持全局事件,如`ajaxStart`和`ajaxStop`,可以在所有AJAX请求...

    Jquery $.ajax函数外的一段代码的执行顺序

    在讨论jQuery的$.ajax函数时,我们首先要了解的是异步编程的基础知识以及$.ajax函数的特性和行为。$.ajax是jQuery提供的一个用于发起HTTP请求的方法,它会以异步的方式执行,这意味着它不会阻塞代码的其他部分,从而...

    Jquery-Ajax.rar_ajax_jq-ajax_neededhu5_travelgeq

    **Ajax(Asynchronous JavaScript and XML)技术是前端开发中的一个重要组成部分,它允许网页在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。jQuery是一个非常流行的JavaScript库,它简化了Ajax操作...

    jQuery中的ajax学习

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理以及Ajax交互等任务。本篇文章将深入探讨jQuery中的Ajax学习,主要聚焦于如何使用jQuery进行异步数据交换,以及它如何帮助开发者创建更...

    jQuery $.get 的妙用 访问本地文本文件

    它是 jQuery 的 AJAX 方法之一,它接受两个参数:URL 和 回调函数。URL 是要请求的资源地址,回调函数则会在请求成功时被调用,返回的数据会作为参数传递给这个函数。例如: ```javascript $.get('Scripts/data.txt...

    jQuery-ajax.rar_jquery

    1. **Promise API**:jQuery的AJAX方法返回一个Promise对象,可以配合`.done()`, `.fail()`, `.always()`等方法进行链式操作,增强代码的可读性和维护性。 2. **JSONP**:跨域请求时,可以利用JSONP(JSON with ...

    jquery-3.5.1.js/min.js

    同时,jQuery的Promise对象和`.done()`, `.fail()`, `.always()`等链式方法,让异步编程变得更加优雅。 总的来说,jQuery 3.5.1是一个强大且成熟的前端工具,它的出现极大地简化了JavaScript的开发工作,提升了开发...

    jquery 的ajax用法

    在Web开发中,Ajax(Asynchronous JavaScript and XML)技术允许我们在不刷新整个页面的情况下与服务器进行数据交互,极大地提升了用户体验。jQuery库简化了JavaScript中的Ajax操作,使得开发者能够更方便地实现异步...

    jquery Ajax js类库

    3. **Promise API**: jQuery AJAX 请求返回的是一个Promise对象,可以链式调用 `.done()`, `.fail()`, `.always()` 等方法处理成功或失败的情况。 4. **$.getJSON()**: 专门用于获取JSON数据的函数,如: ```...

    ASP.NET—009:前台传值的另一种方式$.post

    在实际开发中,$.post方法常常与其他jQuery方法结合使用,例如`.serialize()`(序列化表单数据)、`.done()`、`.fail()`等,以实现更复杂的交互逻辑。同时,为了增强安全性,应考虑使用AntiForgeryToken防止跨站请求...

    Jquery的Ajax应用

    此外,从jQuery 1.5开始,`$.ajax()`返回一个Promise对象,可以使用`.then()`、`.done()`、`.fail()`等方法处理异步操作的结果。 **6. Ajax的跨域问题** 默认情况下,浏览器遵循同源策略,不允许Ajax请求跨域。但...

    jqueryajax jquery ajax

    **jQuery AJAX** 是一个在Web开发中广泛使用的JavaScript库,由John Resig于2006年创建。jQuery简化了JavaScript中的异步HTTP(Ajax)请求,使得开发者能够轻松地与服务器进行数据交互,实现页面的局部刷新,提高...

    jquery.fileDownload-1.4.5.zip

    在Web开发中,下载功能是不可或缺的一部分,尤其是在数据导出、文件分享等场景。jQuery.fileDownload是一款轻量级的JavaScript插件,专为实现浏览器中的文件下载提供了便捷的支持。在本文中,我们将深入探讨jQuery....

Global site tag (gtag.js) - Google Analytics