如何确保 API 在用户同时编辑文本时突出显示该文本?

问题描述 投票:0回答:1

在我们的网络应用程序上,我们有一个文本区域,我们在其中处理用户输入并突出显示某些文本(类似于 MS Word、Grammarly 等)。我们对后端进行 API 调用,它处理文本并决定要突出显示文本的哪些部分(API 返回字符串的索引,前端 JavaScript 根据这些索引进行突出显示)。但是,在 API 返回响应之前用户编辑文本的情况下会出现竞争情况。如果发生这种情况,API 可能会突出显示错误的词,尝试突出显示用户刚刚删除的词,或者错过突出显示它应该具有的文本。

我能想到的解决这个问题的唯一方法是频繁调用 API,这样如果用户在 API 调用中间进行了更改,我们会再次调用来修复任何错误的突出显示。有更好的方法吗?

javascript api race-condition
1个回答
0
投票

你的想法对我来说听起来很合理。您可以将文本最后更改时间的时间戳添加到请求中,然后该请求也会返回。

如果在此期间进行了更改,则响应将不再有效,新请求可能已经在路上。

正如@VLAZ 提到的,您还可以减少请求的数量,因此它们不会在插入的每个字母后发生。

© www.soinside.com 2019 - 2024. All rights reserved.