我应该Ajax还是应该将整个集合存储到变量中?

时间:2017-12-07 14:46:35

标签: javascript ajax

我正在构建单页应用。 该应用程序有一个存储在MongoDB数据库中的7000个端口的列表。 我需要能够在搜索中搜索具有自动完成功能的端口。

我应该Ajax自动完成结果吗?

OR

我应该检索整个端口集合,将其存储在变量中,在此阵列上插入自动完成功能吗?

最佳做法是什么? 什么是最明智的表现?

2 个答案:

答案 0 :(得分:1)

因为您说列表可能会增长,所以我不会将整个列表加载到您的应用中。如果您的列表太大,这可能会导致性能问题。

我会用这种方式解决这个问题:

  1. 在您的网络服务上创建一条路线,然后返回一个与您的搜索相匹配的前10-20个结果。
  2. 在输入时向您的终端发送GET请求。
  3. 为了提高性能,您可以将列表缓存在内存数据库(如Redis中),以避免每次请求都出现数据库访问速度缓慢。

答案 1 :(得分:0)

最佳实践和最明智的表现是:

  1. 将搜索字符串发送到API资源,例如:

    /autocomplete?search=portname1
    
  2. 检索自动填充结果并将其可视化

  3. 您可以使用existing JS libraries进行自动填充(避免发现热水)