如何避免多次AJAX调用?

2023-12-09

我使用以下代码通过 AJAX 提交表单:

$( 'form' ).submit(function(e) {

    $.ajax({
        type: 'POST',
        url: ajax_url,
        dataType: 'json',
        data: {
            'action': 'my_action',
            'str': $( 'form' ).serialize()
        },
        success: function( data ) {
            // Do something here.
        },
        error: function( data ) {
            // Do something here.
        }
    });
    return false;
});

背景

我的 PHP 处理程序执行各种任务,然后发回响应。然后我可以做一些事情data在成功或错误函数中。

我的问题

当用户双击表单的提交按钮时,会发生两次 AJAX 调用,这会导致 PHP 处理程序内的代码执行两次。

我的问题

如果用户双击提交,如何避免我的代码被执行两次?


只需添加一些控制变量:

var isSubmitting = false;

$( 'form' ).submit(function(e) {
    if(isSubmitting) {
        return;
    }
    isSubmitting = true;
    $.ajax({
        type: 'POST',
        url: ajax_url,
        dataType: 'json',
        data: {
            'action': 'my_action',
            'str': $( 'form' ).serialize()
        },
        success: function( data ) {
            isSubmitting = false;
            // Do something here.
        },
            error: function( data ) {
            isSubmitting = false;
            // Do something here.
        }
    });
    return false;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何避免多次AJAX调用? 的相关文章

  • 在给定索引上将字符串分成两部分并返回两部分

    我有一个字符串 需要在给定索引上拆分 然后返回两个部分 并用逗号分隔 例如 string 8211 8 211 98700 98 700 因此 我需要能够在任何给定索引上拆分字符串 然后返回字符串的两半 内置方法似乎执行分割 但只返回分割的
  • 是否有跨浏览器的方式在Javascript中设置style.float?

    通常 如果您需要在 JavaScript 中设置样式属性 您可以这样说 element style attribute value 虽然略有不同 但属性名称通常与 HTML 属性名称类似 尽管是驼峰式 对我来说问题是 float 属性不起作
  • PHP 中正确的存储库模式设计?

    前言 我尝试在具有关系数据库的 MVC 架构中使用存储库模式 我最近开始学习 PHP 中的 TDD 并且我意识到我的数据库与应用程序的其余部分耦合得太紧密 我读过有关存储库并使用国际奥委会容器 http laravel com docs 4
  • 如何跨多个 React Redux 组件使用 requestAnimationFrame 实现游戏循环?

    努力思考最好的解决办法 我可以使用递归调用requestAnimationFrame有一个游戏循环 export interface Props name string points number onIncrement gt void o
  • 使用 eval 时不会受到 XSS 威胁

    我正在制作 不是现在 但我仍然对这个感到好奇 一款使用 HTML5 和 JS 的游戏 我想要的是人们可以插入自定义脚本 但要安全 function executeCustomJS code eval code bad 当然这段代码非常糟糕
  • 为什么浏览器允许onmousedown JS改变href?

    我很长时间以来都注意到 当您尝试复制链接位置或在 Facebook 上打开链接时 它会修改链接并将其传递给l php 例如 我可以被发送到 http www facebook com l php u http 3A 2F 2Fwww goo
  • select2 验证 - 选择至少一个值

    我在用select2 http ivaynberg github io select2 and jQuery 验证 http jqueryvalidation org 插件 select2 的 HTML div class form gro
  • 即使我的情况按预期发生变化,Angular ngClass 也不会更新我的课程

    我正在创建的模板中有类似的内容 div class nng 3 div 价值app layout isNavbarFixed等用零或一初始化 并且页面第一次加载时 适当的类被插入到我的div 不过 此后通
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 如何在没有 SSH 和 CLI 访问生产的情况下部署 symfony 项目 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 大多数托管提供商仅具有 FTP 访问权限 是否可以 常见地进行 symfony 项目 3 x 或 4 x 的本地安装 然后通过 FTP 上
  • 访问 PHP 数组对象受保护的属性

    我正在尝试在 Symfony2 中上传多个文件 我正在尝试访问以下请求对象 但无法获取参数属性 如何将文件一一上传 我得到的错误 致命错误 无法访问第 66 行 var www File src Webmuch FileBundle Ent
  • 基本 jQuery 动画:省略号(三个点依次出现)

    我需要的 我需要一个动画省略号 一个点一个接一个地出现 动画需要循环播放 我想通过 jQuery 实现这一点 动画序列 Frame 1 等待您的选择 Frame 2 等待您的选择 Frame 3 等待您的选择 Frame 4 等待您的选择
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • 使用 yaml 路由描述时如何在运行时获取 Symfony2 中的路由名称?

    在这里你可以找到我的n关于 Symfony2 的第一个问题 我正在与一个分页捆绑 https github com makerlabs PagerBundle wiki使用中提供的路由名称routing yml文件 从我的角度来看 这种方法
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • YouTube 点击时禁用 HTML5

    有没有办法让我们通过javascript禁用HTML5视频的 播放 暂停 点击全屏 功能 然后在我们再次需要时将其放回去 我不知道你是否可以禁用它们 但你可以使用 css 删除它们 video webkit media controls f
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • 拉斐尔路径交叉点不起作用

    我对拉斐尔和 pathIntersection method JSFiddle 示例 http jsfiddle net t6gWt 2 您可以看到有两条线都与曲线相交 但当我使用 pathIntersection method 有一个未解
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a

随机推荐

  • SVG CSS 悬停样式

    尝试使用 CSS 对该多色 HTML 图像的 SVG 进行样式化 以便 5 的右侧在悬停时为白色 body background color gray svg height 50vh fill white html5 g st2 st0 f
  • 在 OpenLayers (KML) 中刷新/重绘图层网络链接自动刷新

    TLDR我想刷新计时器上的图层 以便它绘制新的 kml 数据 如更新链接 网络链接 到目前为止 我已经尝试过操作功能如下 function RefreshKMLData layer layer loaded false layer setV
  • 如何通过事务以多模型形式显示错误消息?

    组织和用户这两个模型具有一对多关系 我有一个组合注册表单 其中一个组织加上该组织的用户进行了注册 我遇到的问题是 当为用户提交无效信息时 它会再次呈现表单 但不会显示用户的错误消息 例如 用户名不能为空 当提交有效信息时 该表单确实有效 并
  • 如何使用反向代理来绕过 X-Frame-Options: SAMEORIGIN for iframe

    我正在努力解决某些页面上的 X Frame Options SAMEORIGIN 限制 以便我可以将它们放入 iframe 中 我知道可以使用反向代理服务器来解决这个问题 但我不确定如何做 我需要的是为一些大厅监视器创建一个触摸屏界面 这些
  • Apache Ant 与 Graal VM

    我们将 Apache Ant 与 Nashorn JavaScript Engine 结合使用 该引擎在 jdk 15 及更高版本中已弃用并删除 我试图找到如何从 Nashorn 切换到 Graal VM 但即使在 Apache 网站上也没
  • WebView方向改变问题

    我有一个下面的布局 其中有一个以重力为中心的线性布局 以使子项居中对齐 我想以编程方式添加一个 webview 并在其中加载 youtube 视频 问题是 webview 的高度和宽度是wrap content wrap content 因
  • docker CMD 中的命令替换

    Using CMD pipenv venv bin python3 main py root uploads 导致错误docker run Error response from daemon invalid header field va
  • Laravel 5.1 中的表单验证异常没有被异常捕获?

    在 laravel5 中 我捕获了所有错误app Exceptions Handler render功能并且工作正常 下面给出的代码 public function render request Exception e error resp
  • 使用 Python 将 PDF 转换为图像 [重复]

    这个问题在这里已经有答案了 我正在尝试在我安装的 ubuntu 服务器中将 pdf 文件转换为图像文件 蟒蛇2 7 poppler 工具 pdf2image 1 12 1 My code from pdf2image import conv
  • Java 易失性关键字

    我知道有很多关于 volatile 的问题 但我只是从这个讨论中感到困惑 Java 挥发性如何保证这段代码中 数据 的可见性 我读过的每个网站都说变量可以存储在缓存中 使该值对其他线程不可见 我什至找到了这个例子https dzone co
  • 在 GCC/CLang 自动矢量化中强制对齐加载/存储的对齐属性

    众所周知 GCC CLang 使用 SIMD 指令可以很好地自动向量化循环 还已知存在对齐 标准 C 属性 除其他用途外还允许对齐堆栈变量 例如以下代码 在线尝试一下 include
  • Fragment Intermediate(I):从edittext获取输入,在fragment的textview中设置文本

    真的需要一些建议 不知道这里出了什么问题 语境 2 个片段 每个片段都有一个 Textview 主要活动有 2 个按钮和一个编辑文本 目的 在主活动的编辑文本框中输入 hello 并 当单击片段 1 的按钮时 文本视图将更改为 hello
  • 无法使用 create-react-app 和 docker windows 进行 webpack 热重载

    我们将使用 dockersetup 开发一个 React PWA 并在部署到 master 分支期间将应用程序发布到 gitlab 页面上 我在 Windows 设备上工作 无法在开发模式下获得热重载功能 每当我进行一些更改时 代码都不会重
  • 通过 JQuery 验证插件单击同一 HTML 表单中的不同按钮来验证不同字段

    例如假设我在表单中有两个文本框 A B 和两个按钮 C D 然后我希望在单击按钮 C 时 如果只有文本框 A 有效 则表单有效 并且在单击按钮 D 时 如果只有文本框 B 有效 则表单有效 有谁知道如何做到这一点 使用忽略选项 form v
  • Python 中块之前的冒号的作用是什么?

    Python 中块之前的冒号的作用是什么 Example if n 0 print The end 冒号用于声明缩进块的开始 从技术上来说 这是没有必要的 当块完成时 您可以缩进和取消缩进 然而 基于Python 公案 显式优于隐式 EIB
  • 在 Python 中打开 SSL 套接字连接

    我正在尝试在 Python 中建立安全套接字连接 但我在 SSL 方面遇到了困难 我找到了一些如何使用 SSL 建立连接的代码示例 但它们都涉及密钥文件 我尝试连接的服务器不需要接收任何密钥或证书 我的问题是如何使用 SSL 封装 pyth
  • 为什么 CMFCMenuBar 不使用加速器表?

    在使用 VS2008 的文档 视图项目中 MFC菜单栏似乎从项目中加载了正确的菜单资源 IDR MAINFRAME 因为添加和删除菜单项反映在菜单的 UI 中 它甚至将加速器附加到默认菜单项 例如 Ctrl O 附加到 打开 项 但是 加速
  • 如何终止我的应用程序的远程进程?

    我们的应用程序使用此方法来终止远程进程 但可以使用其他计划吗 我需要这个因为getRunningAppProcesses 可能不起作用 public void killChildProcess ActivityManager actvity
  • Facebook Messenger 应用程序无效范围 - 权限:pages_messaging_subscriptions

    我正在尝试将 Facebook Messenger 应用连接到我的一个页面 我之前已将 Facebook Messenger 应用连接到页面 但这是我第一次收到此错误 是什么赋予了 这是一个bug我们目前正在努力 同时 请使用我们的测试版或
  • 如何避免多次AJAX调用?

    我使用以下代码通过 AJAX 提交表单 form submit function e ajax type POST url ajax url dataType json data action my action str form seri