如何将响应与相关联的请求保持一致

How to timestamp a response consistently with an associated request?

本文关键字:关联 请求 保持一致 响应      更新时间:2023-09-26

我正在实现即时搜索。由于网络不会按照响应的顺序保留请求的顺序,我不希望(n个较早的)搜索"francis"覆盖(稍后的)搜索的"francis-haart"。

我想在请求中对一个自定义http头进行时间戳,然后提取它并将其编织回响应中。(我对请求使用ajax,对响应使用django。)

将响应(如搜索结果)与请求(如搜索查询)保持一致的时间戳的最佳做法是什么?

(对我来说)最简单的方法是向请求中添加一个随机生成的id,该id将作为JS变量存储在浏览器中,并与结果一起从服务器直接发送回来。如果响应id等于存储的id,则显示它。如果不是,则表示已经发出了另一个请求,您可以丢弃刚刚返回的请求。

当用户输入时,中间结果集将永远不会显示,因为在最后一个请求返回之前将输入下一个字母,但这实际上可能对您有利,因为不断闪烁的结果可能看起来很混乱。