我开发了一个3层应用程序,我遇到了从数据库填充数据的问题。我的应用程序有一个窗口,用于查询数据库中的大数据,此过程需要很长时间。 (我的客户端远离服务器,连接速度为128 KB / s)。
然后我想到解决这个问题的解决方案。该解决方案每隔y秒填充x个数据记录。 (例如:填充10条记录,首先在UI上显示,然后每5秒显示10行)。
这是解决这个问题的好方法吗?有没有更好的方法来解决这个问题?
答案 0 :(得分:2)
如果是出于显示目的,您应该使用分页。有一个变体,当用户尝试使用滚动条访问更多信息时,UI抓取记录的下一个“页面”。 如果需要聚合数据,请在查询中进行,因此整个数据不会通过网络传输。 如果您真的/绝对必须获取整个数据并使用它执行某些过程,请考虑它是否会太大而无法一次加载所有数据。在这种情况下,抓取数据块,运行相关进程,然后抓取另一个块(依此类推)。无论如何,您需要使用不阻塞UI(线程/异步操作)的方法来执行此操作。
答案 1 :(得分:1)
如果您考虑网站,他们几乎总是将数据分页,而不是一次性加载。
答案 2 :(得分:0)
是否可以选择延迟加载(因此您需要按需加载数据,而不是一次性加载数据)?
答案 3 :(得分:0)
如果应用程序UI可以允许,可以在多个页面中显示记录。
我还建议使用异步调用来检索数据,这样您在查询时就不会冻结应用程序(如果是桌面应用程序)。
如果是其网络应用,请考虑使用AJAX。