Bagaimana cara kerja Meteor JavaScript framework? [Tutup]

108

Saya menemukan Meteor dan meskipun tampaknya menarik, saya ingin tahu cara kerjanya. Maksud saya, aplikasi web konvensional bekerja seperti ini: Anda memiliki skrip di server yang mengambil data dari database dan menambahkannya secara dinamis ke halaman web dan data yang dikirimkan pengguna ditambahkan ke database melalui beberapa skrip lainnya.

Tapi bagaimana cara kerjanya di Meteor? Bagaimana bagian Meteor terkait satu sama lain?

Jatin
sumber
8
Ini adalah pertanyaan yang konstruktif dan faktual. Setiap jawaban yang valid HARUS "didukung oleh fakta, referensi, atau keahlian khusus". Rupanya casperOne telah salah memahami pertanyaan atau kriteria untuk menetapkan pertanyaan sebagai tidak konstruktif.
Charlie Flowers
3
Tetapi pertanyaan ini kemungkinan besar akan meminta "diskusi panjang" dan tidak memiliki jawaban "jawaban".
durron597
9
@ durron597 Saya rasa Anda mengatakan bahwa jawaban atas pertanyaan itu sangat besar (perbaiki saya jika saya salah paham). Saya dapat melihat itu, tetapi itu tidak sama dengan menjadi "tidak membangun". Definisi "tidak membangun" dalam ringkasan boilerplate yang muncul di bawah memperjelas bahwa tag "tidak membangun" adalah untuk pertanyaan non-objektif. Pertanyaan ini 100% objektif. Meteor bekerja dengan cara kerjanya. Jika beberapa opini mulai muncul di sini, semua kecuali satu akan menjadi salah.
Charlie Flowers
@mplungjan Saya tidak menemukan satupun dari jawaban ini yang memuaskan karena tidak satupun dari jawaban tersebut secara memadai membahas prinsip Meteor "Data di Kawat. Meteor tidak mengirim HTML melalui jaringan. Server mengirim data dan membiarkan klien merendernya." prinsip pertama dari 7 prinsip.
Alexander Mills

Jawaban:

81

Meteor adalah framework yang memperbarui HTML secara realtime dengan elegan.

Keindahan Meteor adalah Anda hanya perlu membuat template dan model datanya. Sisa dari kode boilerplate biasa disembunyikan. Anda tidak perlu menulis semua kode sinkronisasi.

Potongan-potongan kunci Meteor dapat dibuat sendiri menggunakan potongan-potongan ini:

  • Ini menyediakan template yang diperbarui secara otomatis saat model data Anda melakukannya. Ini biasanya dilakukan menggunakan Backbone.js , Ember.js , Knockout.js , atau alat lain.

  • Pesan klien / server dilakukan melalui websockets menggunakan sesuatu seperti socks.js atau socket.io .

  • The koneksi sisi klien untuk MongoDB benar-benar dingin. Ini mereplikasi driver server MongoDB ke klien. Sayangnya, terakhir kali saya periksa, mereka masih bekerja untuk mengamankan koneksi database ini.

  • The kompensasi latency hanya memperbarui model client-side pertama, kemudian mengirimkan update ke server-server.

Mungkin ada potongan rapi lainnya yang dapat Anda temukan di situs Meteor , atau di GitHub .

xer0x
sumber
10
Meskipun bagus, ini tidak benar-benar menjawab pertanyaan tersebut.
Tahanan ZERO
2
mungkin itu menjawab pertanyaan yang tersembunyi dalam pertanyaan
Muhammad Umer
1
Jawaban ini dengan jelas menyatakan bahwa meteor melakukan semua komunikasi klien / memutuskan menggunakan websockets. Saya pikir itu juga menjawab pertanyaan itu.
Usama Ahmed
apakah meteor js dan node js masih terkait di v0.9?
yozawiratama
28

Penafian : Jawaban ini menjelaskan Meteor , perpustakaan klien JavaScript untuk Meteor Server . Ini awalnya ditambahkan karena ambiguitas dalam pertanyaan, dan mungkin berfungsi untuk mengklarifikasi ambiguitas serupa yang dihadapi oleh pengunjung yang mencari jawaban serupa, tetapi tidak yakin tentang perbedaannya.

Untuk membaca tentang kerangka Meteor JavaScript , silakan lihat jawaban ini oleh xer0x .

Seperti yang disebutkan di dokumentasi Meteor Server, Meteor adalah implementasi dari Comet . Komet pada gilirannya adalah mitra dari AJAX .

Dalam kasus AJAX, Anda biasanya membuat permintaan saat klien melihat kebutuhan untuk melakukannya. Untuk menarik pembaruan dari server, Anda perlu memanggil server misalnya. setiap 5 detik.

Dalam kasus Comet, pembaruan dari server datang lebih cepat, karena koneksi tetap ada. Sambungan dibuat oleh klien, seperti di AJAX, tetapi server tidak merespons hingga memiliki beberapa pembaruan atau mencapai batas eksekusi (skrip di server mungkin memiliki batas eksekusi).

Dalam kasus Meteor Anda hanya mendapatkan aliran data konstan yang memerlukan beberapa kode sisi server tertentu (seperti Meteor Server) dan kode yang sesuai pada klien (dalam hal ini sepertinya kelas Meteor).

Tadeck
sumber
1
Ada Meteor dan Ada Meteor Server. Saya merasa pertanyaan awal adalah tentang yang pertama dan jawaban ini tentang yang terakhir? meteor.com dan meteorserver.org
ile
2
Tidak, Meteor.com adalah bentuk lanjutan dari Comet. Khususnya menggunakan polling lama, Anda dapat menontonnya di alat chrome dev.
wmil
1
@ile: Ya, ada framework JavaScript bernama Meteor ( github.com/meteor/meteor ) dan ada Meteor.js , bagian klien untuk Meteor Server ( meteorserver.org/client-docs ). Saya yakin ini adalah pertanyaan yang terlalu ambigu untuk diceritakan yang mana yang benar-benar ada dalam pikiran OP ini.
Tadeck
5
@ile Sebenarnya, saya tertarik dengan meteor.com. Saya sebenarnya tidak tahu tentang meteorserver.org sebelum komentar Anda.
Jatin
2
Kerangka meteor.js BUKAN server http meteor. Meskipun pilihan penamaan yang buruk dari orang-orang yang membuat kerangka kerja. Lihat meteor.com untuk lebih lanjut.
xer0x
25

Semua keajaiban dengan pembaruan data langsung terjadi karena sistem pelacakan ketergantungan. Penjelasan tentang cara kerjanya dapat ditemukan di bagian Pelacak pada dokumentasi.

Snez
sumber
Meteor.deps telah diubah namanya menjadi Meteor.tracker. Sumber di sini
Benjamin Crouzier
Saya pikir ini telah dipindahkan ke docs.meteor.com/#/full/tracker
Nimir