通过json调用获取项目列表时,最好使用几个小调用(根据需要获取信息)或一个包含所有数据的大调用。
例如,您有一个json调用来获取与特定标题关键字匹配的书籍列表。有100个结果。您将以分页形式显示数据 - 每个“页面”10个结果。拨打一个电话并获得所有结果或在每个页面上拨打下一个10的电话会更有效吗?
我认为这部分取决于有多少结果。如果它是一个巨大的数字,第二个选项似乎很清楚。但是,对于一次通话中可以获得的数量有多大限制--100,1000,10,000项?
答案 0 :(得分:1)
通常,每个ajax调用都有一个开销,并且降低不同调用的数量会使性能更好..除非数据很大...
在分页中,通常最好不要从头开始获取所有数据,因为通常用户不会在所有页面中移动..因此,您可以通过不移动数据来降低服务器上的负载....另一方面,如果数据相对较小或您认为用户需要查看所有数据,请获取它们以节省不同呼叫的开销......
答案 1 :(得分:0)
取决于。
显然,您希望将带宽使用率保持在最低水平,但每次通话也会产生开销。你必须做一些有根据的猜测,最重要的是:你有多大可能需要第2到第100页的数据?
如果很可能(例如,在90%的情况下,用户将点击相同结果集的许多页面),那么我将一次性下载整个结果,否则,我会随时加载单个页面。
要记住的另一件事是延迟。每个ajax调用都有一定的延迟,具体取决于客户端和服务器之间的距离(在网络拓扑中,不一定是地理位置)。对于第一次加载,延迟是不可避免的,但在此之后,您需要问自己快速响应是否重要。在正常情况下,它是预期和可接受的,但如果您的典型用例涉及在页面之间来回翻转,那么它可能会变得令人讨厌,并且您可能会考虑购买快速的更长的初始加载时间。
如果要加载多个页面,但结果集太大(比如数千或数百万个页面),您可能会想到更复杂的方案,例如,下载请求的页面和下一个页面,或下载立即请求页面,然后在后台预取接下来的10页。