首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对ajax http请求进行流水线处理,并仅对最新的请求执行成功函数

对ajax http请求进行流水线处理,并仅对最新的请求执行成功函数
EN

Stack Overflow用户
提问于 2015-12-07 13:46:33
回答 1查看 213关注 0票数 1

我正在使用jquery ajax api调用web方法,并在success上实现一个类似showHideDomElement的功能。

代码语言:javascript
运行
AI代码解释
复制
function showHideDomElement(data) 
{
      if(data == 1 )
          $('#selector').show();
      else
          $('#selector').hide();
}

这就是我所说的

代码语言:javascript
运行
AI代码解释
复制
function Validatebatch() {
  $.ajax({
    type: "POST",
    url: getControllerURL("/Invoice") + "/ValidateBatch",
    data: {
      "Id": $('#someselector').val()
    },
    async: true, // i tried with 'false' but it affect performance
    dataType: "json",
    success: function(data) {
      showHideDomElement(data);
    }
  });
}

Validatebatch函数的ajax请求被多次引发,因此有多个活动的http请求指向url在不同的时间完成。

由于异步行为,success callback可以按不同的顺序执行。

完成的顺序是产生问题的原因。请建议一种方法来绑定ajax请求,使其按照执行的顺序运行/完成(请建议使用jquery async属性以外的属性)

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-12-07 14:58:23

首先,您必须重写Validatebatch函数,以便它返回由$.ajax调用生成的Promise,例如:

代码语言:javascript
运行
AI代码解释
复制
function Validatebatch() {
  return $.ajax({

然后,您必须存储每个Validatebatch调用的promise,并仅在前一次调用完成后才使用它来触发下一次Validatebatch,您应该具有如下内容:

代码语言:javascript
运行
AI代码解释
复制
promise = Validatebatch(); // call Validatebatch the first time and store the returned Promise object

promise = promise.then(Validatebatch); // another call to Validatebatch, only triggered after the previous has ended

promise = promise.then(Validatebatch); // again, this third Validatebatch call will only happen after the second one has ended.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34135089

复制
相关文章
Firebase 如何创建登录 Token
Firebase 的 token 可以使用 firebase 命令行工具来进行创建。
HoneyMoose
2021/04/02
2.5K0
Firebase 如何创建登录 Token
MySQL创建计算字段及基本函数
select concat(vend_name,'(',vend_country,')') from vendors order by vend_name;
小末快跑
2019/07/03
1.9K0
第十章:创建计算字段
本文介绍了如何创建计算字段,包括拼接字段、使用别名、执行算数计算等。
用户1134788
2018/01/05
6240
如何在Python中创建AGE计算器Web App PyWebIO?
为了计算此 Web 应用程序的日期,我们将默认使用 Python 附带的日期时间包。该软件需要用户的姓名和出生日期,然后使用当前日期计算他们的年龄(以年为单位)。输出将使用 PyWebIO 的输出例程显示在网页上。
很酷的站长
2023/08/11
2940
如何在Python中创建AGE计算器Web App PyWebIO?
在Oracle中创建自动增长字段
Oracle在创建表时和其他的数据库有点不一样,MySQL中可以使用“auto_increment”即可。但是Oracle有点麻烦,需要使用序列和触发器达到目的。
星哥玩云
2022/08/17
3.1K0
在Oracle中创建自动增长字段
firebase怎么用_firebase是什么
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168361.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/20
4.3K0
firebase怎么用_firebase是什么
第7课 创建计算字段拼接字段执行简单的算术运算
什么是计算字段? 就是直接从数据库中检索出转换,计算或者格式化的数据,而不是检索出数据之后,再在客户端应用程序中重新格式化。
desperate633
2018/08/22
6780
如何在js中创建对象
七夕临近了,没有对象的来创建一个吧 使用对象字面量: const o = { name: "zehan", greeting() { return `Hi, 我是${this.name}`; } }; o.greeting(); // "Hi, zehan" 使用构造函数: function Person(name) { this.name = name; } Person.prototype.greeting = function () { return `Hi, 我是
ZEHAN
2020/09/23
7.8K0
如何在Mac中创建MiniKube
Minikube是一个工具,可以在本地轻松运行Kubernetes。 Minikube在笔记本电脑的VM中运行单节点Kubernetes集群,供希望尝试Kubernetes或日常开发的用户使用。
方志朋
2022/05/08
2.5K0
如何在Mac中创建MiniKube
如何在Dynamo中创建UI
本文介绍了如何在Dynamo中创建UI,通过使用WPF技术实现了窗口的创建和交互。首先介绍了IronPython和Dynamo的基础知识,然后讲解了实现原理和准备工作。最后通过具体的操作步骤和代码示例讲解了如何在Dynamo中创建UI。
企鹅号小编
2018/01/05
2.2K0
如何在Dynamo中创建UI
07-08 创建计算字段使用函数处理数据第7章 创建计算字段第8章 使用函数处理数据
上述例子中,存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化。
用户1250179
2018/08/02
3.8K0
07-08 创建计算字段使用函数处理数据第7章 创建计算字段第8章 使用函数处理数据
如何在 WordPress 中创建联系表格?
假设我们有一个 WordPress 网站,并且我们想要添加一个功能,让他们可以联系他们所拥有的查询。我们可以通过使用网站上的 WordPress 插件添加联系表格来做到这一点。因此,这将为你的访问者提供一种与你联系的方式,当他们需要帮助或有什么要分享的时候。
海拥
2022/12/19
3K0
如何在 WordPress 中创建联系表格?
如何在 WordPress 中创建登录页面
登陆页面: 登陆页面是为特定受众制定的具有特定目标的目标页面,可以描述为“一页一目的”。登陆页面必须有一个“号召性用语”,并牢记特定目标。成功的着陆页是具有更高转化率、更高参与度和更高质量潜在客户的页面。
海拥
2022/10/04
3K0
如何在 WordPress 中创建登录页面
如何在git中创建新分支
介绍 Git 是一个开源版本控制系统,用于在软件开发过程中跟踪更改。它的相互独立的分支模型使其脱颖而出。分支可以基于以前版本的软件来保持当前进度的完整性,同时处理错误修复或新功能。 在本地创建 Git 存储库 要创建新的 Git 存储库,请在终端中输入以下命令: mkdir rumenz cd rumenz git init 这将在 rumenz 目录中创建并初始化一个新的 Git 存储库。创建一个新的降价文件并添加一行文本: echo This is a line of text > rumenz.md
入门笔记
2022/06/02
3K0
如何在 SwiftUI 中创建条形图
条形图以矩形条的形式呈现数据的类别,其宽度和高度与它们表示的值成比例。本文将展示如何创建一个垂直条形图,其中矩形的高度将代表每个类别的值。
Swift社区
2022/12/12
5.4K0
如何在 SwiftUI 中创建条形图
如何在R中创建日历热图
首先,我们运行Paul Bleicher创建的calendarHeat函数以显示日历热图。 其次,我们创建一些随机的时间序列数据。 最后,我们在两个调色板中绘制时间序列。
用户1359560
2020/04/01
4.6K0
如何在R中创建日历热图
点击加载更多

相似问题

如何在Tableau中创建计算字段?

12

如何在mysql中创建计算字段?

23

如何在firebase中创建必需的字段验证

11

创建输入字段,如Google

12

如何在opentaps/OFBiz中创建计算字段?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档