В множестве клиентских приложений реализована постраничная загрузка данных. Эта, достаточно простая в теории тема, может во много раз усложниться в зависимости от специфики проекта и функциональности серверной части.
DISCLAIMER ВЫСТУПЛЕНИЕ ОСНОВАНО НА ЛИЧНОМ СТРАДАНИЯХ ОПЫТЕ. ДОКЛАД СОДЕРЖИТ ДЕТАЛЬНОЕ ОПИСАНИЕ ОТВРАТИТЕЛЬНЫХ КОСТЫЛЕЙ И ПОЭТОМУ НЕ РЕКОМЕНДУЕТСЯ К ПРОСМОТРУ НИКОМУ.
Изменение количества элементов Актуальность выдачи Обновление контента • Лента статична • Новые элементы добавляются сверху • Любая часть выдачи может быть изменена • Выдача всегда актуальна • Выдача может быть переформирована • Отображаемые данные не обновляются • Отображаемые данные могут быть изменены
for (ShortPost *post in snapshot) { if (![cachedPosts containsObject:post]) { [self downloadPost:post]; } } for (Post *post in cachedPosts) { if (![snapshot containsObject:post]) { [self deletePost:post]; } }