我有一个相当大的对象数组(122000 个元素)。我制作了一个组件的两个版本来处理这些数据:
1) 数据数组位于服务器上。在 useEffect(func, []) 的帮助下,整个数组在组件的第一次渲染时立即加载并输入一个常量。此外,当用户开始在输入字段中输入字符时,来自常量的数据开始以某种方式过滤(这发生在输入字段处理程序中),并且过滤后的数组元素列表出现在屏幕上。
2) 数组也位于服务器上,但是每次用户输入时,都会使用附加参数(用户输入的内容)向服务器发出请求,并且根据此参数,在服务器上过滤数据并发送到客户端,它也显示在表单列表中。
客户端用react写,服务端用nodejs写。
问题:在性能方面,这种情况下会更好吗?向服务器发出一个请求并处理客户端上的数据,还是向服务器发出多个请求并处理服务器上的数据?
实现查找的最佳方式是在客户端使用请求延迟并从服务器接受一个小对象。
也就是说,在客户端,当用户输入字符时,搜索请求被发送到服务器。例如,当用户停止输入超过 2 秒时会发送来自客户端的请求,如果搜索查询很长,则至少每 4 秒发送一次。您可以为此使用use-debounce。
来自服务器的响应应该包含最少的响应选项并且不会给用户带来负担。假设有 10 个合适的选项。
如果提供的 10 个答案对用户来说还不够,那么他可以使用更多按钮,加载更多选项。