【问题标题】:Autocomplete in server side VS data transfer服务器端 VS 数据传输中的自动完成
【发布时间】:2018-11-12 09:26:55
【问题描述】:

我需要在客户端实现自动完成。数据通过服务器传输。 这可以通过多种方式完成。我想到的两个是:

  • 在服务器端实现自动完成: 在这种情况下,我可以想到效率问题。调用服务器并支持每个按键是否有效?
  • 数据传输:可以在第一次需要时将所有数据从服务器传输到客户端,但对于不使用自动完成功能的客户端来说似乎没有必要。再说了,一次性传完所有数据会不会很重?

我在服务器中使用 nodejs,在客户端使用 angular cli。

我很乐意听取您的意见,我也愿意听取我没有考虑过的其他选项,这些选项在这种情况下可能有效。

【问题讨论】:

    标签: javascript node.js autocomplete client-server angular-cli


    【解决方案1】:

    1.) 在服务器端实现自动完成肯定会有一些效率问题,尤其是当您在每个 keydown 事件上都与后端对话时。但这可以通过设置一些基本规则来改进,例如
    a.) 仅当用户输入超过 2 个单词时才调用 api。如果用户输入的字数超过 20 个,您不应该查找数据。
    b.) 如果您知道什么数据之王持续存在,例如只有数字(不允许用户输入任何字母)
    c.) 在从数据源获取数据时始终限制数据,以确保获取有限数量的记录以进行显示。

    2.) 数据传输也只有在数据量有限的情况下才有效,比如几千条记录。
    a.) 如果您已经知道数据会很大,请不要尝试获取所有数据。保持您提到用户可能会或可能不会使用此功能的观点,这将是不必要的 API 调用。
    b)如果数据有限,这种方法将比第一种方法更好,因为您将在客户端存储数据并且不再有不必​​要的服务器调用。

    【讨论】:

      猜你喜欢
      • 2021-09-07
      • 2010-11-01
      • 2016-09-01
      • 2011-01-02
      • 2011-05-07
      • 2018-06-14
      • 2015-12-24
      • 2012-02-11
      • 1970-01-01
      相关资源
      最近更新 更多