Як працює рамка Meteor JavaScript? [зачинено]


108

Я натрапив на Метеор і, хоча це здається захоплюючим, я хочу знати, як це працює. Я маю на увазі звичайні веб-додатки, які працюють так: у вас на сервері є сценарії, які беруть дані з бази даних і динамічно додають їх на веб-сторінки, а представлені користувачем дані додаються до баз даних за допомогою деяких інших скриптів.

Але як ці речі працюють у Метеорі? Як різні частини Метеора пов'язані між собою?



8
Це конструктивне, фактичне питання. Будь-які обґрунтовані відповіді мали б "підтверджуватись фактами, посиланнями чи спеціальною експертизою". Мабуть, casperOne неправильно зрозумів питання або критерії для визначення питання як неконструктивного.
Charlie Flowers

3
Але це питання, ймовірно, вимагає "розширеного обговорення" і не має відповіді "відповідь".
durron597

9
@ durron597 Я думаю, ви говорите, що відповідь на питання дуже велика (виправте мене, якщо я неправильно зрозумів). Я бачу це, але це не те саме, що бути "неконструктивним". Визначення "неконструктивне" у резюме, що відображається нижче, дає зрозуміти, що "неконструктивний" тег призначений для не об'єктивних питань. Це питання є 100% об'єктивним. Метеор працює так, як працює. Якщо тут починають з'являтися численні думки, то всі, окрім однієї, помиляються.
Charlie Flowers

@mplungjan Я вважаю, що жоден з цих відповідей не задовольняє, оскільки жодна з них не відповідає належним чином принципу Метеора "Дані по дроту. Метеор не надсилає HTML по мережі. Сервер надсилає дані і дозволяє клієнту виводити їх". перший принцип 7 принципів.
Олександр Міллс

Відповіді:


81

Meteor - це структура, яка елегантно оновлює HTML в режимі реального часу.

Краса Meteor полягає в тому, що вам потрібно лише створити шаблони та моделі даних. Решта звичайного кодового коду прихована подалі. Вам не потрібно писати весь код синхронізації.

Ключові фрагменти Метеора можна було побудувати самостійно, використовуючи такі шматки:

  • Він надає шаблони, які оновлюються автоматично, коли це роблять ваші моделі даних. Зазвичай це робиться за допомогою Backbone.js , Ember.js , Knockout.js або іншого інструменту.

  • Повідомлень клієнт / сервер здійснюється через WebSockets , використовуючи що - щось на зразок socks.js або Socket.io .

  • Стороні клієнта підключення до MongoDB дійсно охолодитися. Він копіює драйвер сервера MongoDB у клієнт. На жаль, востаннє я перевірив, вони все ще працювали над забезпеченням з'єднання з базою даних.

  • Компенсації затримки просто оновлення на стороні клієнта модель першої, а потім відправити поновлення на сервер-сервер.

Можуть бути й інші акуратні фрагменти, які ви можете знайти на сайті Meteor або на GitHub .


10
Хоча приємно, це насправді не вирішує питання.
В'язень ЗЕРО

2
можливо, це відповідає на питання, приховане в питанні
Мухаммед Умер

1
У цій відповіді чітко зазначено, що метеор здійснює весь зв'язок клієнта / сервера за допомогою веб-розетки. Я думаю, що це також відповіло на питання.
Усама Ахмед

Метеор js і вузол js все ще пов'язані в v0.9?
yozawiratama

28

Відмова : Ця відповідь описує Meteor , бібліотеку клієнтів JavaScript для Meteor Server . Спочатку він був доданий через неоднозначність у запитанні і може служити метою з'ясування подібних неоднозначностей, з якими стикаються відвідувачі, які шукають подібні відповіді, але не впевнені в різниці.

Щоб прочитати про Метеорну рамку JavaScript , перегляньте цю відповідь за допомогою xer0x .

Як зазначено в документації на Meteor Server, Meteor є реалізацією Comet . Комета в свою чергу є аналогом AJAX .

У випадку AJAX ви зазвичай робите запит, коли клієнт бачить потребу в цьому. Щоб витягнути оновлення з сервера, вам потрібно буде зателефонувати на сервер, наприклад. кожні 5 секунд.

У випадку з Comet, оновлення з сервера відбувається швидше, тому що з'єднання стійке. З'єднання встановлюється клієнтом, як і в AJAX, але сервер не відповідає, поки не має деякого оновлення або не досягне межі виконання (сценарії на сервері можуть мати обмеження виконання).

У випадку Meteor ви отримуєте постійний потік даних, який потребує певного коду на стороні сервера (наприклад, Meteor Server) та відповідного коду на клієнті (у цьому випадку це виглядає як клас Meteor).


1
Є Метеор і Метеор Сервер. У мене таке відчуття, що первісне питання стосувалося першого, і ця відповідь стосується другого? meteor.com та meteorserver.org
ile

2
Ні, речі Meteor.com - це вдосконалена форма Комети. Зокрема, він використовує довгі опитування, ви можете спостерігати за ним у інструментах хромованого розробника.
wmil

1
@ile: Так, існує рамка JavaScript під назвою Meteor ( github.com/meteor/meteor ) і є Meteor.js , клієнтська частина Meteor Server ( meteorserver.org/client-docs ). Я вважаю, що це питання є надто неоднозначним, щоб сказати, хто з цих ОП дійсно мав на увазі.
Тадек

5
@ile Насправді мене зацікавив meteor.com. Я фактично не знав про meteorserver.org перед вашим коментарем.
Джатін

2
Рамка meteor.js НЕ є сервером http meteor. Незважаючи на поганий вибір назв людей, які створили рамки. Дивіться інформацію на meteor.com для отримання додаткової інформації.
xer0x

25

Вся магія з оновленням живих даних відбувається через систему відстеження залежностей. Пояснення того, як це працює, ви можете знайти в розділі Tracker документації.


Meteor.deps було перейменовано на Meteor.tracker. Джерело тут
Бенджамін Крузьє,

Я думаю, що це переміщено на docs.meteor.com/#/full/tracker
Німір
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.