正确答案是:“取决于”。
如果您要处理已知数量(每页10个结果,10页结果),并且希望尽快将所有这些结果提供给用户,那么我建议在500毫秒内下载块(10或20)计时器或类似的东西。
然后,您可以异步填充多余的后页,并相应地更新“总页数”控件。
从那里开始,您的用户将立即获得结果,并能够在2秒钟之内在所有数据之间来回切换。
如果您有一个需要立即访问所有数据的站点,并且需要显示40个结果,则需要进行大量转储。
如果您有一个无限滚动的网站,那么您希望获取几个页面长度。对于Twitter之类的东西,我可能会预先计算容器的平均高度,而不是屏幕高度。然后,我将下载3或4个屏幕长度的推文。从那里,当用户滚动到其第二或第三屏幕(分别为第三或第四屏幕)时,我将下载下一批。
因此,我的事件可能会附加到一个onscroll上,它会检查是否允许运行该事件(如果自上次运行以来至少有16ms,很明显,我们仍在滚动),那么它将检查它的位置,考虑到屏幕高度以及最后一批(`screen_bottom
= latest_batch.height *0.75`或类似批次)的总高度,它与底部的接近程度。screen_bottom是相对于last_batch的,因为如果用户向上滚动,高于上一个批次,则screen_bottom完全是负数。
…或将它们归一化,这样您就可以处理百分比。
足以让您感觉好像数据一直在您身边。您不想在开始时就等待大的块加载,但是也不想在尝试移动时等待小块的加载。
因此,请根据您正在做的事情以及您希望用户如何使用数据来确定快乐的媒介是什么。



