jquery - 如何使 JQuery.ajax 与超时同步?

标签 jquery

我有一个包含服务器上数据的日历。当用户向前移动一个月时,我可能(根据之前的操作)需要先获取该数据,然后才能显示该月。

我的代码处理失败(404),但我无法让它处理超时,因为调用是同步的。我知道当 .ajax 调用是同步时,超时会被忽略,我想知道如何在异步调用周围进行同步等待?我想正确处理超时,但缺少旋转循环,我不知道如何在 JavaScript 中优雅地做到这一点。

我在页面上有一个模式对话框来停止点击,我只需要阻止用户直到我可以渲染下个月,或者如果发生超时,以防止他们移动到该月,因为该月的数据月份无效。

我不太明白 jquery 代码是如何实现这一点的......

最佳答案

我认为您希望保持屏幕锁定,直到成功或失败。听起来您想让 AJAX 调用 aysnch 并使用 JQuery 注册回调函数 AJAX (例如,错误事件):

error(jqXHR, textStatus, errorThrown)Function A function to be called if the request fails. The function receives three arguments: The jqXHR (in jQuery 1.4.x, XMLHttpRequest) object, a string describing the type of error that occurred and an optional exception object, if one occurred. Possible values for the second argument (besides null) are "timeout", "error", "abort", and "parsererror". This is an Ajax Event. As of jQuery 1.5, the error setting can accept an array of functions. Each function will be called in turn. Note: This handler is not called for cross-domain script and JSONP requests.

关于jquery - 如何使 JQuery.ajax 与超时同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5047451/

相关文章:

JQuery IE 绑定(bind)此

javascript - 如何根据附加参数刷新剑道网格

javascript - 如何返回 html 页面而不重新加载它

javascript - JQuery/PHP 动态下拉问题

jquery - 从集合中取出 n 个元素

javascript - 如何使用 jQuery 删除包含特定文本的 div,以及仅删除 div 后的 HR 分隔线

jquery - Bootstrap 工具提示中的图像

javascript - 重新开始按钮后,图像不会显示在测验结果中

javascript - 拖动时的 mouseUp 事件

jquery - 响应式 Bootstrap 轮播