我开发了一个3层应用程序,我遇到了从数据库填充数据的问题。我的应用程序有一个窗口,用于查询数据库中的大数据,此过程需要很长时间。 (我的客户端远离服务器,连接速度为128 KB / s)。

然后我想到解决这个问题的解决方案。该解决方案每隔y秒填充x个数据记录。 (例如:填充10条记录,首先在UI上显示,然后每5秒显示10行)。

这是解决这个问题的好方法吗?有没有更好的方法来解决这个问题?

有帮助吗?

解决方案

如果是出于显示目的,您应该使用分页。存在这种变化,其中UI抓取下一个“页面”。当用户尝试使用滚动条访问更多信息时的记录数。 如果需要聚合数据,请在查询中进行,因此整个数据不会通过网络传输。 如果您真的/绝对必须获取整个数据并使用它执行某些过程,请考虑它是否会太大而无法一次加载所有数据。在这种情况下,抓取数据块,运行相关进程,然后抓取另一个块(依此类推)。无论如何,您需要使用不阻塞UI(线程/异步操作)的方法来执行此操作。

其他提示

弗雷迪打败了我,但作为一个例子,你会注意到很多数据库查看器只填充了视野中所需的数据,因为你使用滚动条它会自动抓取下一页/数据视图。

如果您考虑网站,他们几乎总是将数据分页,而不是一次性加载。

是否可以选择延迟加载(因此您需要按需加载数据,而不是一次性加载数据)?

如果应用程序UI可以允许,可以在多个页面中显示记录。

我还建议使用异步调用来检索数据,这样您在查询时就不会冻结应用程序(如果是桌面应用程序)。

如果是其网络应用,请考虑使用AJAX。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top