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

Autocomplete in server side VS data transfer

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

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

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

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

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