在 Angular 8+ 中,如果我们需要显示记录列表,我们将以分页方式显示结果。
我们拥有超过 100 万条记录,未来记录也会增加。
我使用 Spring Boot 和 MYSQL 作为数据库
但是最好的方法是什么
一次从服务器获取所有数据并在客户端处理分页。
一次获取 10 条记录并显示,当用户单击“下一步”按钮时,从服务器获取下 10 条记录。
在 Angular 8+ 中,如果我们需要显示记录列表,我们将以分页方式显示结果。
我们拥有超过 100 万条记录,未来记录也会增加。
我使用 Spring Boot 和 MYSQL 作为数据库
但是最好的方法是什么
一次从服务器获取所有数据并在客户端处理分页。
一次获取 10 条记录并显示,当用户单击“下一步”按钮时,从服务器获取下 10 条记录。
我强烈建议您使用变体 #2。
进行分页的主要原因并不是因为一次只在 UI 中显示几个条目是有意义的。相反,分页只允许您从大型数据集(例如您的数据集)中传输必要的条目。这极大地提高了性能并减少了必须从服务器发送到客户端的数据量。
变体 #1 的性能会很差,因为客户端必须获取所有 1,000,000 条记录才能仅显示其中的 10 条。这没有多大意义,直接违背了分页的想法和优势。
另一方面,变体 #2 只会获取实际显示的条目。它只会传输大约 0.00001% 的变体 #1 会传输的数据。
我认为与来自服务器的所有数据相比,您应该使用分页。
当您从服务器获取所有数据时,这是一项昂贵的操作,因为您提到您的应用程序有超过数百万条记录。
在需要时使用分页调用 API 并根据每页的分页请求获取数据。
我会在两者之间使用一些东西,加载可能 100 或 1000 条记录。但是一百万你的浏览器会耗尽内存,而你的用户会厌倦 10...