在完成前一个 AJAX 请求之前中止新的 AJAX 请求

2023-12-03

我有一个函数,可以在输入更改时运行 AJAX 调用。

但是,在之前的 ajax 调用完成之前,该函数有可能会再次被触发。

我的问题是,如何在开始新的 AJAX 调用之前中止之前的 AJAX 调用? 不使用全局变量。 (参见类似问题的回答here)

JSFiddle我当前的代码:

JavaScript:

var filterCandidates = function(form){
    //Previous request needs to be aborted.
    var request = $.ajax({
        type: 'POST',
        url: '/echo/json/',
        data: {
            json: JSON.stringify({
                count: 1
            })
        },
        success: function(data){
            if(typeof data !== 'undefined'){
                jQuery('.count').text(data.count)
                console.log(data.count);
            }
        }
    });
};

if(jQuery('#search').length > 0){
    var form = jQuery('#search');
    jQuery(form).find(':input').change(function() {
        filterCandidates(form);
    });
    filterCandidates(form);
}

HTML:

<form id="search" name="search">
    <input name="test" type="text" />
    <input name="testtwo" type="text" />
</form>
<span class="count"></span>

 var currentRequest = null;    

currentRequest = jQuery.ajax({
    type: 'POST',
    data: 'value=' + text,
    url: 'AJAX_URL',
    beforeSend : function()    {           
        if(currentRequest != null) {
            currentRequest.abort();
        }
    },
    success: function(data) {
        // Success
    },
    error:function(e){
      // Error
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在完成前一个 AJAX 请求之前中止新的 AJAX 请求 的相关文章

随机推荐

  • Postgres 中的存储过程是否在数据库事务中运行?

    如果存储过程在中间失败 那么从 SP 开头开始的更改是否会隐式回滚 或者我们是否必须编写任何显式代码来确保 SP 仅在数据库事务中运行 严格来说 Postgres 并没有have 存储过程如 ISO IEC 标准第 11 版之前的定义 该术
  • 在过程 MySQL 5.5.x 中获取 SQLEXCEPTION 消息

    我怎样才能得到错误文本MySQL 5 5存储过程时SQLEXCEPTION occurs 我需要一些类似的东西来看看出了什么问题 DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN GET DIAGNOS
  • JQuery 和 Chrome 扩展

    我正在尝试开发一个测试 chrome 扩展 以了解 JQuery 如何与 chrome 扩展配合使用 从提供的代码来看 我认为它应该将弹出窗口的背景更改为黄色 我尝试使用内容脚本和背景加载 jquery js 当我通过后台脚本命令加载它时
  • 在 PHP 中备份和恢复 MySQL 数据库

    我正在尝试使用 PHP 备份和恢复 MySQL 数据库 Backup dbhost localhost dbuser root dbpass dbpass dbname test output D backup test sql exec
  • 发布带有位置的状态更新

    当您向 Facebook 发布定期状态更新时 它会跟踪您当前的位置并在时间旁边提供 附近的 城市 即 5月24日附近纽约州纽约市 请注意 这是not办理登机手续 我正在尝试做同样的事情 而不搜索页面 地点 id 和签入 我尝试过发布坐标与纬
  • 捆绑包 ID 和 SKU 可以在另一个 iTunes Connect 帐户中重复使用吗?

    我正在从 iTunes Connect 中删除一个应用程序 以便将其重新上传到新公司的新帐户中 从 iTunes Connect 开发者指南中 我了解到只要是从原始帐户以外的另一个帐户完成的 应用程序名称就可以重复使用 但是 Bundle
  • 使用查找/替换来清除 vbNullString

    我有一个电子表格 它在我们的 Enterprise 系统中生成为报告并下载到 Excel 电子表格中 生成的电子表格中的空白单元格并不是真正的空白 即使不存在任何数据 并且空白单元格不包含 空格 字符 例如 A2 中的以下单元格公式返回 T
  • 如何在 Tensorflow 中使用 freeze_graph.py?

    我在冻结 Tensorflow 中的模型时遇到问题 我想在 Unity 中使用它 但它们需要将冻结图作为 bytes 文件而不是 pb 除了 freeze graph py 之外 还有其他方法获取字节文件吗 我不断收到此错误 类型错误 na
  • 在 SQL (MySQL) 中根据今天的日期返回查询结果

    我有一个疑问 我得到了帮助 但我陷入了另一个困境 我的代码是 SELECT a name COUNT AS num FROM table2 b INNER JOIN table1 a ON b status id a id GROUP BY
  • 在网络浏览器中欺骗 URL

    假设我获得了某个页面的源代码 例如http example com 我现在想将此源代码写入 Web 浏览器 使用类似以下内容 myWebBrowser Navigate about blank myWebBrowser Document W
  • 发布到 beta.6 后 angularfire2 无法工作

    angularfire2 发布到 beta 6 后 我无法正确执行我的 Ionic2 应用程序 这就是问题所在 21 54 35 lint finished in 4 51 s 21 54 35 typescript uy Network
  • 带百分比的 SVG 进度圈

    我使用此处找到的代码创建进度圈 http codepen io JMChristensen pen Ablch 但我不希望它那么大 所以我将内圆和外圆的圆半径更改为 40 而不是 90 问题是在我这样做之后 显示百分比的圆停止工作 无论我在
  • 传递给函数的最佳方式是什么 - 变量还是数组/对象?

    将数据传递给函数 变量或数组 对象 的最佳实践是什么 例如 我需要大多数功能的用户信息 我应该传递包含所有信息的完整用户对象 还是只传递我需要的信息 始终是用户名 有时是 id 很少有其他用户信息 function do something
  • 将三个字符的语言代码 (ISO 639-2) 转换为两个字符的代码 (ISO 639-1)

    我正在使用文本转语音 TTS 引擎开发 Android 应用程序 TTS 组件返回可用语言列表作为列表Locale对象 但这两种方法Locale getLanguage and Locale getISO3Language每个Locale对
  • 如何在 Enter 按键时关闭键盘

    我想在按 RETURN 键时关闭键盘 我尝试过将按钮放在视图的背面 但是我怎样才能通过按 RETURN 键来做到这一点呢 BOOL textFieldShouldReturn UITextField textField textField
  • 打开文件对话框以获取 FTP 位置

    当用户浏览 ftp 位置时 我遇到打开文件对话问题 我从 openFileDialogue 获得的路径是本地路径 本地设置临时文件夹 而不是我选择的实际 ftp 路径 如何获取实际的 ftp 路径 您正在哪个版本的 Windows 上运行
  • 获取状态消息的隐私设置?

    有谁知道是否可以查询隐私设置以获取状态更新 我知道您可以将它们用于相册 但对于我的应用程序来说 能够提取不久前的随机状态消息并说 您与所有人分享了这篇文章 您今天还会这样做吗 会很有用 看看人们对在线分享的态度如何变化 我不追求任何花哨的东
  • 如何使用“cp”命令排除特定目录?

    我想复制目录中的所有文件 除了特定子目录中的某些文件 我注意到cp命令没有 exclude选项 那么 我怎样才能实现这一目标呢 rsync快速且简单 rsync av progress sourcefolder destinationfol
  • 更改 observable 但不通知 knockout.js 中的订阅者

    有没有办法忽略可观察值变化的订阅者 我想更改可观察值的值 但不使用 Knockout js 为订阅者执行它 通常这是不可能或不可取的 因为它可能会导致依赖链中的事物不同步 使用限制扩展器通常是限制依赖项接收的通知量的好方法 但是 如果您确实
  • 在完成前一个 AJAX 请求之前中止新的 AJAX 请求

    我有一个函数 可以在输入更改时运行 AJAX 调用 但是 在之前的 ajax 调用完成之前 该函数有可能会再次被触发 我的问题是 如何在开始新的 AJAX 调用之前中止之前的 AJAX 调用 不使用全局变量 参见类似问题的回答here JS