【问题标题】:Searching at frontend vs backend in NodeJS在 NodeJS 中搜索前端与后端
【发布时间】:2016-09-28 04:49:40
【问题描述】:

我正在使用 NodeJS 和 SailsJS 框架开发一个 Web 应用程序。现在我要开发搜索功能。我想从大约 5000 条记录中搜索一个属性。

我知道我可以使用 mogodb 查询来搜索它。如果我在前端获取 javascript 中的所有记录并从中搜索怎么办?什么是搜索的好方法?在后端使用 db 查询还是在前端使用 javascript 搜索?

【问题讨论】:

    标签: javascript node.js search


    【解决方案1】:

    如果您在前端进行搜索,那么您必须将整个数据集加载到前端,并为每个查询保持同步。这不是一个好主意。

    使用数据库查询 - 这就是它们的设计目的,您只需要传输结果。

    【讨论】:

      【解决方案2】:

      这完全取决于您的应用和用户对它的期望。如果你有,你绝对不应该使用客户端搜索:

      • 无法缓存的短期数据(如在线用户列表)。
      • a) 无法缓存或 b) 不会缓存的巨大数据集(大多数访问者不会使用搜索)。但大小限制取决于应用。
      • 复杂的计算密集型搜索(如全文搜索)。

      在其他情况下它可以工作。甚至数百万条数据记录的搜索可以在 100 毫秒内运行,这比从服务器接收响应所需的常见网络延迟要快。

      客户搜索的优势:

      • 快速:无网络延迟。
      • 强大的查询:查询可以使用所有具有引擎优化优势的JS能力。

      缺点:

      • 加载完整的数据集(对大量数据至关重要)。
      • 需要同步策略:完全重新加载、部分更新、CRDT 等。

      【讨论】:

        【解决方案3】:

        只在后端使用数据库查询,这是一个很好的做法。它会减少执行时间。

        不应在客户端进行这种检查,因为您必须将整个数据库发送到客户端并循环多次记录以获取所需的记录。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-06
          • 2018-04-21
          • 2023-03-09
          • 2019-06-16
          • 1970-01-01
          • 1970-01-01
          • 2021-06-16
          • 2021-12-22
          相关资源
          最近更新 更多