服务器端VS数据传输中的自动完成功能

时间:2018-11-12 09:26:56

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

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

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

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

我很高兴听到您的意见,同时也愿意听到其他我没有考虑过的选择,这些选择在这种情况下可能是有效的。

1 个答案:

答案 0 :(得分:1)

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

2。)仅在您的数据量有限的情况下,比如说几千条记录,数据传输也才有效。
a。)如果您已经知道数据将非常庞大,请不要尝试获取所有数据。牢记您提到用户可能会或可能不会使用此功能,这将是不必要的API调用。
b)如果数据有限,则此方法将比第一种方法更好,因为所有这些都将一次性存储在客户端,并且不再需要不必要的服务器调用。