Как работает среда JavaScript Meteor?

Я наткнулся на Meteor, и, хотя это кажется захватывающим, я хочу знать, как это работает. Я имею в виду, что обычные веб-приложения работают следующим образом: У вас есть сценарии на сервере, которые берут данные из базы данных и динамически добавляют их к веб-страницам, а полученные пользователем данные добавляются в базы данных через некоторые другие скрипты.

Но как эти вещи работают в Метеор? Как разные части Метеор связаны друг с другом?

Ответ 1

Meteor - это структура, которая элегантно обновляет HTML в реальном времени.

Красота Метеор заключается в том, что вам нужно только создать шаблоны и модели данных. Остальная часть обычного кода шаблона скрыта. Вам не нужно писать весь код синхронизации.

Ключи Метеор могут быть построены самостоятельно, используя следующие части:

  • Он предоставляет templating, который автоматически обновляется, когда модели данных. Обычно это делается с помощью Backbone.js, Ember.js, Knockout.js или другой инструмент.

  • обмен сообщениями клиент/сервер выполняется через websockets, используя что-то вроде socks.js или socket.io.

  • клиентское соединение с MongoDB действительно круто. Он копирует драйвер MongoDB-сервера в клиент. К сожалению, последний раз, когда я проверил, они все еще работали над защитой этого подключения к базе данных.

  • компенсация задержек сначала обновляет клиентскую модель, а затем отправляет обновление на сервер-сервер.

Могут быть другие аккуратные фрагменты, которые вы можете найти на Meteor, или на GitHub.

Ответ 2

Отказ от ответственности. Этот ответ описывает Meteor, клиентская библиотека JavaScript для Meteor Server. Он был первоначально добавлен из-за двусмысленности в вопросе и может служить цели прояснения аналогичных двусмысленностей, с которыми сталкиваются посетители, ищущие подобные ответы, но не уверен в различии.

Чтобы прочитать структуру JavaScript Meteor, см. этот ответ xer0x.

Как упоминалось в документации Meteor Server, Meteor представляет собой реализацию Comet. Комета в свою очередь является аналогом AJAX.

В случае AJAX вы обычно делаете запрос, когда клиент видит необходимость в этом. Чтобы вытащить обновления с сервера, вам нужно будет вызвать сервер, например. каждые 5 секунд.

В случае кометы обновление с сервера происходит быстрее, потому что соединение является постоянным. Соединение устанавливается клиентом, как в AJAX, но сервер не отвечает до тех пор, пока он не обновится или не достигнет предела выполнения (сценарии на сервере могут иметь ограничения выполнения).

В случае Meteor вы просто получаете постоянный поток данных, для которого требуется определенный код на стороне сервера (например, Meteor Server) и соответствующий код на клиенте (в этом случае он выглядит как класс Meteor).

Ответ 3

Вся магия с обновлением живых данных происходит из-за системы отслеживания зависимостей. Объяснение того, как это работает, можно найти в разделе Tracker документации.