在我们的网络应用程序上,我们有一个文本区域,我们在其中处理用户输入并突出显示某些文本(类似于 MS Word、Grammarly 等)。我们对后端进行 API 调用,它处理文本并决定要突出显示文本的哪些部分(API 返回字符串的索引,前端 JavaScript 根据这些索引进行突出显示)。但是,在 API 返回响应之前用户编辑文本的情况下会出现竞争情况。如果发生这种情况,API 可能会突出显示错误的词,尝试突出显示用户刚刚删除的词,或者错过突出显示它应该具有的文本。
我能想到的解决这个问题的唯一方法是频繁调用 API,这样如果用户在 API 调用中间进行了更改,我们会再次调用来修复任何错误的突出显示。有更好的方法吗?
你的想法对我来说听起来很合理。您可以将文本最后更改时间的时间戳添加到请求中,然后该请求也会返回。
如果在此期间进行了更改,则响应将不再有效,新请求可能已经在路上。
正如@VLAZ 提到的,您还可以减少请求的数量,因此它们不会在插入的每个字母后发生。