如何将响应的时间戳与相关请求一致?

时间:2012-03-17 17:10:20

标签: javascript jquery ajax

我正在实施即时搜索。由于网络没有按照响应的顺序保留请求的顺序,我不希望(早先)搜索“francis”来覆盖(后来)搜索“francis haart”。

我在考虑在请求中为自定义http标头添加时间戳,然后将其解压缩并将其编织回响应中。 (我正在使用ajax作为请求,并使用django作为响应。)

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

1 个答案:

答案 0 :(得分:1)

最简单的方法(对我而言)是在请求中添加一个随机生成的id,它将作为JS变量存储在浏览器中,并且还会直接从服务器发送回来和结果一起发送。如果响应id等于存储的id,则显示它。如果没有,这意味着此后又发出了另一个请求,您可以放弃刚回来的请求。

当用户输入时,会有一个轻微的风险,因为下一个字母将在最后一个请求返回之前输入,所以不会显示中间结果集,但实际上这可能对您有利,因为不断闪烁的结果可能会显示凌乱。