在我网站的高级搜索屏幕中,大约有15个字段需要自动填充字段.
它们的内容全部取决于彼此的价值(因此,如果填写了一个,则其他内容将根据第一个值的变化而变化).
大多数领域都有很多可能性(至少1000个条目).
如果用户停止输入半秒,则当前进行ajax调用.这个ajax调用快速调用我的Lucene索引并返回一堆JSon对象.方法本身非常快,但是数据的连接和传输太慢了.
如果我查看其他网站(比如facebook),他们的自动完成功能是即时的.我认为他们将可能的值放在他们的HTML中,因此他们不必进行往返.但我担心我正在处理的数据量,这不是一个选择.
有任何想法吗?
仅返回前x个结果.
获取有关用户选择内容的一些趋势,并根据此进行订购,最好是自动进行.
缓存每个URL和击键组合的结果,这样如果您之前已经获取了结果,则无需往返.
与使用相同URL和击键组合的所有自动填充共享此缓存.
当然,为JSON启用gzip压缩,并确保将缓存头设置为缓存一段时间.时间取决于您自动完成响应的更改率.
优化JSON以降低最低限度.不要发送任何你不需要的东西.