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



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

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

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

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

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

2.(只有在数据量有限(比如几千条记录(的情况下,数据传输才能工作
a.(如果您已经知道数据将是巨大的,请不要尝试获取所有数据。请注意,您提到的用户可能使用也可能不使用此功能,这将是一个不必要的API调用
b(如果数据有限,这种方法将比第一种方法更好,因为一次性将数据存储在客户端,不再需要不必要的服务器调用。

最新更新