防止多次 Ajax 更新

Posted

技术标签:

【中文标题】防止多次 Ajax 更新【英文标题】:Prevent multiple Ajax updates 【发布时间】:2020-06-27 14:01:52 【问题描述】:

我们有一个实时显示事件的网络日历客户端。每当服务器上有更新时,我们使用 Ably Realtime 通知客户端它需要从服务器请求更新。然后客户端使用 Ajax 调用从服务器获取更新的信息。

问题是发生了多次更新,有时在旧的 Ajax 调用完成之前就开始了新的 Ajax 调用。问题是我们如何在第一个 Ajax 调用完成后才执行第二个 Ajax 调用。

示例代码:

channel.subscribe(function(message)  $.ajax(...) );

【问题讨论】:

查看此添加 ajax 请求。在一个阙 ***.com/a/31149750/9641914 嗨,我是 Ably 的开发倡导者。出于兴趣,您为什么不保持日历客户端和服务器之间的连接始终打开(通过 Ably),这样一开始消息排序就没有问题?更新不够频繁? 连接始终打开。然而,我们正在维护一个我们无法更改的现有系统,其中事件信息是通过 ajax 获取的。因此,我们要做的不是客户端轮询服务器以查看是否有更改,而是让服务器在有更改时向客户端推送操作调用,然后客户端发出 ajax 请求以获取新数据。 【参考方案1】:

这里是一位精明的工程师,

现在发生的情况是,您的 AJAX 调用可能需要任何时间,并且您可能会在该窗口内收到更多消息,并且这些较新的调用可能会更快完成。

我们无法使您的 Ajax 调用同步,但您可以。当来自 Ably 的消息到达时,您可以做的是将更新调用添加到列表中,并拥有一个按顺序逐一使用这些更新的函数,而不是仅仅在来自 Ably 的消息到达时触发它们。

【讨论】:

以上是关于防止多次 Ajax 更新的主要内容,如果未能解决你的问题,请参考以下文章

$.ajax防止多次点击重复提交的方法

jq防止ajax多次提交的方法

ajax小技巧,防止多次点击发送多个请求

防止多次执行 JavaScript 函数

更新 ViewModel 时如何防止 Kendo UI Grid 多次重新绑定

ReactJs:防止多次按下按钮