Я наткнулся на Meteor, и, хотя он кажется захватывающим, я хочу знать, как он работает. Я имею в виду, что обычные веб-приложения работают следующим образом: у вас есть сценарии на сервере, которые берут данные из базы данных и динамически добавляют их на веб-страницы, а данные, отправленные пользователем, добавляются в базы данных через некоторые другие сценарии.
Но как это работает в Meteor? Как разные части Meteor связаны друг с другом?
Ответы:
Meteor - это фреймворк, который элегантно обновляет HTML в реальном времени.
Прелесть Meteor в том, что вам нужно только создать шаблоны и модели данных. Остальная часть обычного шаблонного кода скрыта. Вам не нужно писать весь код синхронизации.
Ключевые элементы Meteor можно построить самостоятельно, используя эти элементы:
Он предоставляет шаблоны, которые обновляются автоматически при обновлении ваших моделей данных. Обычно это делается с помощью Backbone.js , Ember.js , Knockout.js или другого инструмента.
Сообщений клиент / сервер осуществляется через WebSockets , используя что - то вроде socks.js или Socket.io .
Стороне клиента подключения к MongoDB действительно охладиться. Он реплицирует драйвер сервера MongoDB в клиент. К сожалению, в последний раз, когда я проверял, они все еще работали над безопасностью подключения к базе данных.
Компенсации задержки просто обновление на стороне клиента модель первой, а затем отправить обновления на сервер-сервер.
Могут быть и другие полезные элементы, которые вы можете найти на сайте Meteor или на GitHub .
источник
Как упоминалось в документации Meteor Server, Meteor - это реализация Comet . Comet, в свою очередь, является аналогом AJAX .
В случае AJAX вы обычно делаете запрос, когда клиент видит в этом необходимость. Чтобы получить обновления с сервера, вам нужно будет вызвать сервер, например. каждые 5 секунд.
В случае Comet обновление с сервера происходит быстрее, потому что соединение постоянное. Соединение устанавливается клиентом, как в AJAX, но сервер не отвечает, пока он не обновится или не достигнет предела выполнения (сценарии на сервере могут иметь ограничения на выполнение).
В случае с Meteor вы просто получаете постоянный поток данных, для которого требуется определенный серверный код (например, Meteor Server) и соответствующий код на клиенте (в данном случае это похоже на класс Meteor).
источник
Вся магия с обновлением данных в реальном времени происходит из-за системы отслеживания зависимостей. Объяснение того, как это работает, можно найти в разделе документации Tracker .
источник