我需要帮助寻找同步 jQuery ajax 的替代方案

2023-12-07

我有一个非常复杂的表单,其中包含多个选项卡。每个选项卡都包含一个独特的Plupload实例(用于上传多个图像)。该表格允许用户上传医学图像“案例”,其中每个案例由多个成像“研究”(例如 CT 扫描)组成,并且每个研究包含多个图像。

当用户单击“提交”按钮时,我使用 jQuery 拦截单击,因为我需要执行以下操作:

  1. 检查是否输入了必填字段[easy]
  2. 从我的服务器获取唯一的 ID 号。每个 Plupload 实例都需要此 ID 号才能知道要上传到哪个目录。

在表单提交时调用的函数中,我有以下代码片段:

var case_id;

// Code to check the required fields are entered
....

// Get the case id number from the server
$.get('ajax/unique-case-id').done(function(data){
    case_id = data;
});

// do something with case_id and other things. MUST happen after the ajax call
....

// if there was a problem uploading the images, stop the form from submitting
if (problem_occured) {
    return false;
}

根据我当前的逻辑,我需要脚本暂停,直到获得 case_id。在 jQuery 1.8 之前这是可能的,但 $.ajax() async : false 属性已被弃用。

我的问题有两个:

  1. 有没有办法在我获得所需的 case_id 之前暂停脚本?
  2. 如果没有,知道如何改变我的逻辑来解决这个问题吗?

您可能想知道为什么 case_id 如此重要。 plupload 实例在表单提交之前进行上传,并且需要一个上传目录。我希望上传的图像进入我的服务器上名为 case_id 的文件夹中。这将使服务器上的 PHP 脚本在获取表单 POST 数据的其余部分后确定如何处理它们。


这是一个非常常见的“问题”,通过适当地使用回调可以很容易地解决。

$("#submitButton").click(function (event) {
    event.preventDefault(); //Don't submit the form, we'll submit it manually.

    var case_id;

    // Code to check the required fields are entered
    ....

    // Get the case id number from the server
    $.get('ajax/unique-case-id').done(function(data){
        case_id = data;

        // do something with case_id and other things. MUST happen after the ajax call
        ....

        // if there was a problem uploading the images, stop the form from submitting
        if (problem_occured) {
            alert("something went wrong");
        } else {
            $("#referenceToTheForm").submit();
        }

    });
});

长话短说,将“处理问题或提交表单”保留在 $.get 调用的回调中实际上会导致脚本“暂停”,直到取回数据。然后,您可以使用 spin.js 之类的东西来为用户提供良好的等待体验,直到完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我需要帮助寻找同步 jQuery ajax 的替代方案 的相关文章

  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • 如何在不阻止触摸启动的情况下防止“过度滚动历史导航”?

    我正在实现基于滑动的导航 但我在使用 Chrome 时遇到了麻烦 当页面向右拖动时 会触发新实现的功能 过度滚动历史导航 从而导致跳回 到 历史 1 为了防止这种情况 我必须打电话 preventDefault on touchstart
  • 设置双指缩放时精确的滚动位置

    我正在创建一个地图应用程序 它将标记图像放置在画布上并滚动到它 我正在使用浏览器的捏缩放和滚动来放大 缩小地图 然而 我注意到有一些奇怪的行为 我想知道如何解决它 这有点难以解释 但我们开始吧 假设您处于网页的标准缩放级别 无法进一步缩小
  • jQuery输入文件点击方法和IE上拒绝访问

    我尝试仅使用一个按钮作为输入文件 它在 Firefox Chrome Safari 中工作正常 但在 IE 中不行 提交表单时我总是收到 访问被拒绝 的消息 代码 input file click 有真正的解决方法吗 我在谷歌上浪费了大约2
  • jquery 插件“uploadify”-从上传脚本返回响应的方法?

    我的标题代码 document ready function sampleFile uploadify uploader include uploadify uploadify swf script add list php scriptD
  • 如何在 React Native 上显示 SVG 文件?

    我想显示 svg 文件 我有一堆 svg 图像 但我找不到显示的方式 我尝试使用Image and Use的组成部分反应本机 svg https github com magicismight react native svg但他们不这样做
  • 将 Firebase FCM 添加到 ReactJS 应用程序

    我正在尝试向我的 ReactJS 应用程序中的用户发送推送通知 我已添加 firebase 请求用户通知权限 这正在发挥作用 但现在我想注册设备令牌 但这给了我错误 消息传递 我们无法注册默认的 Service Worker 无法注册 Se
  • 为什么在 JavaScript 中 if([]) 被验证而 [] == false ?

    if false alert empty array is false alert alert 0 if alert empty array is true 他们都会运行警报 Demo http jsfiddle net roine ZFD
  • 在 JQuery 中发布表单并填充 DIV - 在 IE 中损坏

    我正在尝试创建一个通过 jQuery 发布数据并将返回值填充到同一 DIV 中的表单 这样页面就不会在发布操作时刷新 div div
  • 如何在 Web 服务器上设置 gzip 压缩?

    我有一个嵌入式网络服务器 总共有 2 兆空间 通常 您使用 gzip 文件对客户端有利 但这会节省我们在服务器上的空间 我读到你可以只 gzip js 文件并将其保存在服务器上 我在 IIS 上测试过 但没有任何运气 为了使这项工作成功 我
  • 模板中带有 ng-if 的 angularjs 指令

    我正在构建一个在模板内使用 ng if 的指令 奇怪的是 提供给链接函数的元素没有扩展ng if代码 它只是ng if的注释行 经过一番尝试 我发现通过将链接代码包装在 timeout 中似乎可以使其正常工作 但我想知道这是否不是正确的处理
  • webpack中动态加载外部模块失败

    我正在尝试建立以下架构 一个核心 React 应用程序 它具有一些基本功能 并且能够在运行时加载其他 React 组件 这些额外的 React 组件可以按需加载 并且它们在构建核心应用程序时不可用 因此它们不能包含在核心应用程序的捆绑包中
  • 如何动态调整jqgrid到当前窗口大小?

    如何动态调整jqgrid到当前窗口大小 基于javascript jQuery 最好的例子在这里 TinyMCE 去 http www tinymce com tryit full php http www tinymce com tryi
  • 扩展 RegExp 以获取文件扩展名

    我知道 已经有很多基于 RegExp 的解决方案 但是我找不到适合我需求的解决方案 我有以下函数来获取 URL 的各个部分 但我还需要文件扩展名 var getPathParts function url var m url match w
  • 如何重复 ajax 请求,直到满足 RxJS Observable 的条件?

    我正在尝试重复请求 直到响应包含使用 RxJS 的数据 此时我想调用成功 或失败 处理程序 但我在使用 RxJS 时遇到了麻烦 这是我目前的方法 redux observable action observable mergeMap gt
  • 摩纳哥:如何添加内联自动完成/代码建议?

    我找不到任何有关如何添加内联自动完成功能的示例 如下图所示 有人可以指导我如何在摩纳哥做到这一点吗 这可以在 v1 66 中启用 现在在 Insiders 中 The editor quickSuggestions设置现在接受内联为 配置值
  • ChartJs:如何按时间值(而不是像素)以编程方式平移

    我使用的是chartJs 3 6 1 和 Chartjs plugin zoom 1 2 1 但我认为这并不重要 我有 2 个时间序列折线图 当我通过拖放平移一个图表时 我也想移动 平移另一个图表 为此 我为 graphA 启用了缩放 平移
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • 确定 Javascript 中的日期相等性

    我需要找出用户在 Javascript 中选择的两个日期是否相同 日期以字符串 xx xx xxxx 形式传递给该函数 这就是我需要的全部粒度 这是我的代码 var valid true var d1 new Date datein val
  • MongoDB:javascript执行失败:无法在 src/mongo/shell/collection.js 保存 DBQuery 对象

    在 MongoDb 中 当我尝试修改集合中的现有文档时 它会生成以下异常 javascript execution failed can t save a DBQuery object at src mongo shell collecti

随机推荐

  • 在数组中查找奇数项(没有对)的算法? [复制]

    这个问题在这里已经有答案了 可能的重复 在列表中查找单个数字 给定一个整数数组 除了其中一个整数之外 所有整数都出现偶数次 找到一个出现奇数次的整数 这是一个好的算法 也许类似于二分搜索的方式 比如将 2 个 n 2 大小的小数组的所有元素
  • 纯CSS多重堆叠位置粘性?

    是否可以在纯 CSS 中将多个粘性元素堆叠在一起 可以在这里看到所需的行为 https webthemez com demo sticky multi header scroll index html 只是我更喜欢使用纯 CSS 而不是 J
  • 如何将三角矩阵索引转换为行、列坐标?

    我有这些索引 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 etc 哪些是矩阵中节点的索引 包括对角线元素 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
  • 查找匹配线的第 N 次出现

    我有具有相同行数的列表 多行文本字符串 项目顺序可能在很多方面有所不同 但行数可能不同 Ardei Mere Pere Ardei Castraveti 我想找到2 th出现包含 的匹配行Ardei 并将项目名称替换为另一个名称 并分别在另
  • RichFaces4 启动失败,并出现 java.lang.IllegalArgumentException:重复键:类 javax.faces.convert.DoubleConverter

    对于没有 Maven 的 RichFaces4 这似乎不是一个简单的任务 我下载了 myfaces 2 0 9 jar 和 richfaces 4 0 0 并添加了 sac 1 3 jar guava r08 jar 和 cssparser
  • 如何在mvc中将formcollection转换为模型

    是否可以转换formcollection以 模特 闻名 HttpPost public ActionResult Settings FormCollection fc var model Student fc Error Can t con
  • 将 #include 包装在命名空间块中是个好主意吗?

    我有一个 C 标头 它被编写为 C 和 C 编译 它只使用公共子集中的功能 并使用extern C thing 问题是 该标头在全局命名空间中声明了内容 出于通常的原因 我宁愿避免这种情况 我想过这样做 namespace foo incl
  • WebRTC - 与多个对等方共享一个流

    我有三个同龄人 PeerA将本地媒体流式传输到其他对等点 PeerB接受流并位于与 PeerA 相同的机器上 PeerC接受流并位于另一台机器上 所有同行都是最新的 Chrome 信令服务器正在运行 我看到所有描述都按照我的预期发送和接收
  • 从 Google Fit Rest API 获取活动时间

    我正在努力匹配返回的 活动时间 适合 REST API与现实 举个例子 2014 年 12 月 我散步了两次 每次大约 45 分钟 api 返回其中之一作为类型7 行走 正确 和另一个作为类型0 在车辆中 错误 然而 Fit 应用程序将两者
  • solr安装,无法启动示例

    第一 我想学习solr 所以我想执行快速入门教程http lucene apache org solr quickstart html 在 ubuntu 14 04 64 位上 我通过以下方式安装了 solr 在 opt per wget
  • 不知道批量大小的 3-D 批量矩阵乘法

    我目前正在编写一个张量流程序 需要将一批 2 D 张量 形状为 3 D 张量 相乘 None 与二维矩阵W 这个需要转W转换为 3 D 矩阵 这需要知道批量大小 我没能做到这一点 tf batch matmul不再可用 x get shap
  • Visual Studio(2012 及更低版本)删除 CSS 属性

    我在使用 Visual Studio 2010 时遇到了一个非常奇怪的问题 当我将渐变的 CSS 属性添加到样式表时 Visual Studio 将在调试一段时间后将其删除 我添加到样式表的代码示例 button Firefox backg
  • Tweepy 3.10.0,AttributeError:模块“tweepy”没有属性“Client”

    我正在尝试将 Twitter API 的版本 2 与 tweepy 3 10 0 一起使用 但在遵循文档时我感到困惑 https docs tweepy org en latest client html 当我尝试设置 API 时 如下例所
  • Typescript 类不实现接口类型

    interface IFoo method ha string gt void class Foo implements IFoo public method ha 将鼠标悬停在类方法中的 ha 参数会显示 参数 ha 隐式具有 any 类
  • C++11 中线程安全局部静态变量初始化的成本?

    我们知道 局部静态变量初始化在C 11中是线程安全的 现代编译器完全支持这一点 C 11 中局部静态变量初始化是线程安全的吗 使其线程安全的成本是多少 我知道这很可能取决于编译器实现 上下文 我有一个多线程应用程序 10 个线程 通过以下函
  • 我应该在旧的 Windows XP 机器上设置哪个 Nodejs 版本?

    尝试在一台装有 Windows XP SP3 的旧计算机 1GB 内存 900 Mhz 上设置 Nodejs 我安装了最新的 x86 版本的 Node 4 4 5 但是当我尝试在命令行访问它时 例如简单的版本检查 node version
  • 使用 Python 启动 Google Compute 实例

    我正在尝试使用 Google API Python 客户端库启动 Google Compute 实例 这样 廉价实例 在单核上运行 就可以定期启动和停止更昂贵的实例 具有多个核心 以降低成本 我已经成功安装了不同的组件并运行了 Google
  • UITextView 在 iOS5 上可编辑,但在 iOS6 上不可编辑

    我的应用程序中有一些 UITextView 自从我开始从 XCode 4 5 构建以来 UITextView 在 iOS6 中有点不可编辑 但在 iOS5 设备上构建 它们是完全可编辑的 自从我开始使用 iOS6 以来 代码就没有改变过 X
  • 使用 iOS 中的照片框架将视频保存到自定义相册

    我想将使用自定义相机拍摄的视频保存到特定相册中NewAlbum in the Photos Library使用Photos Framework 我找到了一些答案 但他们提到了使用ALAssetsLibrary现在已弃用 如果您需要更多详细信
  • 我需要帮助寻找同步 jQuery ajax 的替代方案

    我有一个非常复杂的表单 其中包含多个选项卡 每个选项卡都包含一个独特的Plupload实例 用于上传多个图像 该表格允许用户上传医学图像 案例 其中每个案例由多个成像 研究 例如 CT 扫描 组成 并且每个研究包含多个图像 当用户单击 提交