2015-09-08 2 views
0

У меня есть коллекция из ~ 60 документов в моей коллекции под названием Books. Каждый раз, когда я вызываю publishFunction, сервер возвращает 10 случайных документов из Книги.Как ДЕЙСТВИТЕЛЬНО удалять Minimongo/локальный кеш Meteor's?

Раньше я обновлял страницу, чтобы получить publishFunction, и все работает нормально (я получил 10 случайных документов на клиенте), но обновление занимает некоторое время &, это просто неуклюже.

Теперь я звоню Meteor.subscribe('publishFunction') от клиента, чтобы динамически обновлять подписку, выполняя то, что мне нужно сделать с новыми документами в обратном вызове onReady.

Но есть проблема.

publishFunction возвращает 10 элементов каждый раз, гарантируется (проверяется путем вывода счетчиков с сервера). Сервер работает должным образом.

Но на клиенте ... Я не получаю эти 10 новых элементов на клиенте. Я получу их при первой загрузке страницы (как и раньше), но затем каждый раз, когда publishFunction вызывается из клиента (что я делаю после вызова Books._collection.remove({});, чтобы очистить старые документы), я получаю чуть меньше 10 документов показывая на клиенте (опять же, несмотря на то, что publishFunction одновременно возвращает 10 документов).

Обычно это происходит примерно так: 10, 7, 5, 3, 2, 0 (количество элементов возвращается после последующих обновлений).

У меня нет большого количества документов в книгах, поэтому я подозреваю, что локальный кеш не ДЕЙСТВИТЕЛЬНО очищается Books._collection.remove({});. Это объясняет постепенно уменьшающееся количество новых книг, поскольку Метеор все еще видит кэшированные документы и не добавляет все 10 предметов, поскольку некоторые из них уже существуют.

Как я могу ДЕЙСТВИТЕЛЬНО очистить локальный кеш без изменения маршрутов?

EDIT: Я пробовал clear() и reset() от помощника менеджера Arunoda, но это не помогло ... такое же поведение.

ответ

0

По-видимому, метод stop() также повторно подписывается на подписку, поэтому не требуется Meteor.subscribe(). Задача решена.

Это было действительно неясно в документах (для меня).

+2

Какая функция 'stop()'? 'Meteor.stop()'? 'MyCollection.stop()'? – FreePender

+1

«Это было действительно непонятно в документах (для меня)». Цикл ... продолжается ..._ –

Смежные вопросы