Вот моя проблема.Делает ли перекрытие подписки в Meteor хуже?
У меня есть приложение, где пользователи могут хранить заметки в блокнотах.
В настоящее время, когда пользователь нажимает на блокнот, я подписываюсь на публикацию, которая возвращает эти блокноты в первые 5 заметок.
Таким образом, всякий раз, когда пользователь переходит к новому блокноту, устанавливается новая подписка, а 5 нот этого блокнота заканчиваются в minimongo. Таким образом, minimongo имеет только 5 заметок в коллекции заметок за один раз
Чтобы улучшить пользовательский интерфейс, я изменил публикацию, так что при первоначальной загрузке всего приложения я подписался на публикацию, в которой будут представлены все блокноты и первые 5 заметок для каждого блокнота. Итак, теперь в minimongo мы имеем (5 x (# блокнот)) количество нот в любое время.
Таким образом, начальная нагрузка немного тяжелее, но я надеюсь, что после этого перемещение между блокнотами происходит намного быстрее.
Поэтому при загрузке я подписываюсь на myInfo
, который возвращает пользователям блокноты и кулаки по 5 заметок для каждого блокнота.
Затем, когда вы на самом деле нажимаете блокнот, я подписываюсь на myNotepadInfo
, который также возвращает первые 5 нот в блокноте. Поскольку первоначальная подписка уже извлекла эту информацию, ни один из документов в minimongo не изменился. Но я все еще хочу подписаться на myNotepadInfo
, потому что у меня есть механизм загрузки большего количества, который зависит от этой подписки в шаблоне.
Итак, мое приложение полностью работает с этими изменениями, но я не уверен, что происходит под капотом, и если этот метод действительно помогает производительности. Я не вижу конкретной разницы в том, как блокнот загружается после изменения.
Итак, у меня есть вторая подписка, которая перекрывает начальную подписку.
Мне кажется, что, поскольку вторая подписка перекрывается с первоначальной, она должна передавать меньше документов клиенту, чтобы она была быстрее?
Из [meteor documentation] (https://docs.meteor.com/api/pubsub.html#Meteor-subscribe): '* Однако, если следующая итерация вашей функции запуска подписывается на тот же набор записей (тот же самый имя и параметры), «Метеор» достаточно умен, чтобы пропускать расточительную отписку/переадресацию. * « Я не думаю, что это хорошая практика, чтобы подписаться на все при запуске. Время загрузки сильно увеличится с большим количеством блокнота. Вот почему для подписки. Если в будущем вы хотите реализовать динамическую загрузку/поиск, [easy: search] (https://github.com/matteodem/meteor-easy-search) - хороший выбор. –