2014-10-23 1 views
0

Я создаю веб-приложение meteor js, которое представляет клиенту слайдер диапазона html, привязанный к переменной сеанса.Метеор реактивный опубликовать на основе переменной сеанса клиента

Я хочу, чтобы сервер публиковал данные со значениями меньше текущего значения ползунка с данными, отсортированными от самого нового до самого старого. У меня много записей в базе данных (2000+). Если я публикую все в пределах макс ползунка, мои браузеры слишком медленны. Если я ограничу публикацию до 100 записей или около того, я пропускаю много данных с небольшими значениями (которые, случается, старше), когда я привожу слайдер.

Каковы наилучшие методы для проверки масштабируемости (не отправляя слишком много данных клиенту)? Является ли реактивная функция публикации ключом (используя onchange со значением ползунка в качестве ключа)? Это звучит как много серверных поездок. Помогите!

+0

Что касается вашего вопроса об реактивной подписке на основе переменной сеанса клиента: это определенно возможно. Вот пример вашего конкретного случая: Deps.autorun (function() { Meteor.subscribe ("yourCL", selectorArgs, Number (Session.get ('yourSessVar'))); }); Метеоритная документация, похоже, показывает новый метод «Tracker.autorun»; однако я не использовал его. Он утверждает, что пропускает расточительную отмену подписки/повторную подписку. – Adam

+0

. Я понимаю часть подписки. Моя функция публикации, кажется, повторяется каждый раз, когда переменная сеанса изменяется (я регистрирую переменную через сервер). Моя публикация просто не отправляет новое подмножество базы данных, когда я хочу ... – zigo

+1

Без кода трудно предположить. Будет ли прочитан [как работает публикация/подписка] (http://stackoverflow.com/questions/19826804/understanding-meteor-publish-subscribe)? –

ответ

1

Будет ли доступность страницы приемлемой с точки зрения UX? Если это так, есть пакеты, которые могут помочь, например alethes:pages.

В противном случае Adam находится на правильном пути, предложив использовать Tracker.autorun (Tracker заменил Deps).

Как и в любой другой публикации, убедитесь, что ваша функция публикации only returns the fields that you need on the client, чтобы свести к минимуму переданные данные и потребление памяти.

+0

Я хочу опубликовать больше записей клиенту, если пользователь захочет увидеть больше. Я бы предпочел не навязывать клиенту все. Я не уверен, что мне обязательно нужны страницы для этого. – zigo

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