Я использую PFQueryTableViewController
в своем проекте и только что обнаружил довольно неприятную проблему.
Я использую разбиение на страницы, все работает нормально, но когда текущий пользователь только что закончил загрузку/обновление таблицы (не загружает следующую страницу), вдруг другой пользователь делает сообщение (назовем его object0 ), то разбиение на страницы не будет работать должным образом. Например, у меня есть 100 объектов на сервере Parse, а objectsPerPage
установлено на 10. Вот как выглядит таблица после того, как текущий пользователь загрузил таблицу:
объект1
объект2
объект3
...
объект10
загрузить следующую страницу
Затем вдруг другой пользователь делает сообщение «object0», и когда текущий пользователь завершает загрузку следующей страницы, таблица выглядит так:
объект1
объект2
...
объект10
объект10
объект11
...
объект 19
загрузить следующую страницу
что дает мне два "object10". И это совершенно разумно, потому что это логика Parse для loadNextPage
:
query.limit = self.objectsPerPage; //retrieve 10 objects per query
query.skip = page * self.objectsPerPage; //skip 10*current_page objects per query
Как вы можете видеть, когда другой пользователь создает сообщение (назовем его «object0»), на сервере будет 101 объект, но таблица по-прежнему отображается от «object1» до «object10», потому что она не обновляется. И когда текущий пользователь загружает вторую страницу (это не обновление), сервер пропустит первые 10 объектов («объект0» до «объекта 9», а не от 1 до 10), поэтому результат для второй страницы будет " объект 10" на "объект 19", таким образом, в таблице будет два "объекта 10".
Есть ли способ устранить эту проблему?
И извините за мой плохой английский, если вы не уверены, что я хотел сказать, просто прокомментируйте ниже, и я объясню дальше.
Большое спасибо.