JS自动完成。 AJAX vs JS对象/数组

时间:2012-04-26 19:24:56

标签: javascript mysql jquery

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

  1. AJAX查询搜索数据库表,返回结果
  2. AJAX查询搜索数据库表,然后将结果存储在会话中,在后续请求中搜索会话
  3. AJAX查询搜索数据库表,然后将结果存储在JS对象/数组中,搜索后续请求中的对象/数组
  4. 我应该注意,这张桌子可以很容易地达到1000行但不会增长到超过几千的东西。什么是有效的,以性能为导向的方法来解决这个问题?

    这可能是一个很好的解决方案吗?

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

2 个答案:

答案 0 :(得分:1)

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

如果它是一个不太理想的客户端,例如移动设备,您可以考虑为该设备集更优化。

然而,这完全是主观的。

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

答案 1 :(得分:0)

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