0

我想知道对于在每个 keyup() 上搜索表的字段,您认为什么是更好的解决方案。

  1. AJAX查询搜索数据库表,返回结果
  2. AJAX 查询以搜索数据库表,然后将结果存储在会话中,在后续请求中搜索会话
  3. AJAX查询搜索数据库表,然后将结果存储在JS对象/数组中,在后续请求中搜索对象/数组

我应该注意,该表可以轻松达到 1000 行,但不会增长到超过几千行。什么是有效的、性能驱动的方法来解决这个问题?

这会是一个好的解决方案吗?

http://jqueryui.com/demos/autocomplete/

4

2 回答 2

1

我认为您最好的选择(根据您的评论做出一些假设)是将结果缓存在服务器上(不是会话,缓存),然后考虑该缓存对象的生命周期。如果您大量使用客户端,并且客户端是浏览器,则可以将其发送给客户端以供之后使用。考虑到 1000 X 100 将是 100,000 - 不是很大,但仍然不是试用版。

如果它是一个不太理想的客户端,例如移动设备,您可能会考虑更适合该设备集的东西。

然而,这都是相当主观的。

编辑:您应该能够构建这样的结构,以便您的缓存将被多个客户端使用(如果它们都是相同的数据集),而会话将是每个用户。

于 2012-04-26T20:32:29.420 回答
0

延迟查询请求,直到您至少有 3 个字符。结果数字非常低,但如果你想优化你的网页,你必须考虑有多少用户会向服务器、移动设备或桌面发起请求?您需要处理器和内存来处理对象。

于 2012-04-26T19:53:23.083 回答