1

当您加载多个曲目(使用SPAsyncLoading waitUntilLoaded:timeout:then)时,是否有任何关于加载时间方面的预期指南、基准或类似内容?

我问的原因是我尝试批量加载约 20 首曲目,因为曲目元数据将在我的客户端的整个流程中使用(它被分成多个步骤,在这之间我宁愿没有除了初始延迟之外的任何加载时间,在这种情况下,用户更容易接受)。

即一次尝试​​加载多少轨道是合理的,“应该”需要多长时间?加载 20 首曲目“很多”吗?加载单个轨道本身是否会触发许多新的请求以提取元数据,这使得尝试一次加载多个轨道是一个非常糟糕的主意?除了超时之外,还有什么方法可以找出为什么加载轨道失败?

在默认的 20 秒超时后(我尝试过更长的超时,没有太大差异),通常(可能 10 次中的 1 次)加载失败。有时所有 20 首曲目都无法加载,有时只有一首曲目。我敢说,在这些尝试之间(可能是一两分钟),我的互联网连接保持不变(无论如何)。

我意识到这里有很多关于什么是正常和什么不正常等的模糊输入。这显然取决于许多因素,例如您的互联网连接、Spotify 服务器的状态等,但也许可以给出某种关于预期的提示以及是否有任何行为和不特定于 Spotify API。

4

1 回答 1

1

通常,规则是:仅加载您现在需要向用户显示其元数据的曲目,并且可能预加载接下来将显示的曲目。

此外,由于 CocoaLibSpotify 使用队列,因此您在库上放置的负载越多,您的开销就越大。例如,如果您将SPAsyncLoading一堆东西分开,它们都会单独排队,但它们的计时器会立即启动。如果您将足够多的东西排入队列,它们甚至可能在超时触发时才开始加载。

但是,由于在内部会进行大量排队,因此如果您将大量内容放入单个SPAsyncLoading调用中,也会发生这种情况。

为了保持快速,保持轻松并尝试遵循第一句话中的指导方针。此外,尽量保持高效:

  • SPAlbumBrowse将一次性加载该专辑的曲目元数据,从而减少后端负载和排队时间。

  • SPArtistBrowse.

  • 一样SPPlaylist,我相信。

于 2012-11-28T10:30:36.457 回答