应用程序/后端架构:Snapchat 故事的加载速度为何如此之快?

sch*_*ler 5 preloading ios snapchat

简单的问题 - Snapchat 故事如何加载如此之快,甚至当我“跳过”一个项目时,下一个总是准备好的?

Snapchat 故事是图像和视频的混合体,只要点击屏幕,下一个项目就会立即开始,无论是图像还是视频。我从未在应用程序中看到任何延迟,我想知道

他们是怎么做到的呢?一旦应用程序启动,他们是否会缓存所有内容(极不可能)?在您观看故事时,他们是否会持续预加载即将推出的项目?当我点击故事时,他们会加载所有内容吗?我不明白完美无瑕的内容流背后的“魔力”。另外:后端提供什么?资源清单?

有谁知道他们是如何做到的?Yeti 或 Fleek 等其他应用程序几乎都在做同样的事情,以同样完美的方式执行。我是一个相当不错的 iOS 开发人员,但我不知道这里使用的方法。

Car*_*los 1

该用例允许在应用程序端进行后台准备,并在后端进行缓存。

所以我会怎么做是这样的:

  • 当应用程序成为焦点时,让后台线程找到一些指向紧随其后的故事的链接。另外,如果您快要读完缓存内容,请再向前看一些。可能有某种视觉动画,这样人们就无法在不让应用程序有机会加载一些数据的情况下滑动到最后。
  • 因为您知道接下来会发生什么,所以后端可以将所有内容移动到缓存,在那里感觉良好且快捷。SnapChat 不应该是持久的这一事实有很大帮助,因为一旦收件人看到了这些内容,您就可以将其从缓存中删除。此外,由于收件人没有编辑信息,因此您不会遇到缓存一致性问题(实际上您可以编辑内容吗?有一段时间没有查看了)。