Я создаю приложение Cordova, которое представляет операции CRUD со списком билетов. На домашней странице представлен список, и вы можете щелкнуть любой элемент списка, чтобы получить более подробную информацию о конкретном билете.
Главная страница доступна по адресу /
и представляет собой шаблон tickets
. Страница заявки доступна по адресу /ticket/:_id
и представляет собой шаблон ticket
.
Маршрут /
подписывается на все билеты, относящиеся к текущему пользователю (скоро будет добавлена нумерация страниц). Я предполагаю, что эти данные кэшируются на стороне клиента в minimongo.
Когда пользователь нажимает, чтобы узнать больше о билете, я попытался получить новые данные через Tickets.findOne(Router.current().params._id)
. Это работает, если я добавлю подписку на один билет на этот маршрут. Не работает, если я избавлюсь от подписки.
Это не имеет большого смысла, потому что первоначальная подписка на билеты должна кэшировать все видимые билеты на стороне клиента в minimongo. При выполнении Tickets.findOne(Router.current().params._id)
-- разве Meteor не должен обращаться к minimongo за этими данными без необходимости новой подписки?
Я использую GroundDB для заземления коллекций и методов, даже если приложение находится в автономном режиме. Он работает, но не учитывает подписки по маршрутам.
Любые предложения о том, как лучше всего кэшировать данные по маршрутам, чтобы сделать приложение быстрым и уменьшить количество поездок в БД?