防止多次 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 更新的主要内容,如果未能解决你的问题,请参考以下文章