Khung JavaScript Meteor hoạt động như thế nào? [đóng cửa]


108

Tôi đã xem Meteor và trong khi nó có vẻ thú vị, tôi muốn biết nó hoạt động như thế nào. Ý tôi là các ứng dụng web thông thường hoạt động như thế này: Bạn có tập lệnh trên máy chủ lấy dữ liệu từ cơ sở dữ liệu và thêm động vào các trang web và dữ liệu do người dùng gửi sẽ được thêm vào cơ sở dữ liệu thông qua một số tập lệnh khác.

Nhưng những thứ này hoạt động như thế nào trong Meteor? Các phần khác nhau của Meteor liên quan với nhau như thế nào?



8
Đây là một câu hỏi mang tính xây dựng, thực tế. Bất kỳ câu trả lời hợp lệ nào sẽ PHẢI được "hỗ trợ bởi sự kiện, tài liệu tham khảo hoặc chuyên môn cụ thể." Rõ ràng casperOne đã hiểu sai câu hỏi hoặc các tiêu chí để chỉ định một câu hỏi là không mang tính xây dựng.
Charlie Flowers

3
Nhưng câu hỏi này có thể sẽ trưng cầu "thảo luận mở rộng" và không có câu trả lời "câu trả lời".
durron597 7/12/12

9
@ durron597 Tôi nghĩ rằng bạn đang nói rằng câu trả lời cho câu hỏi là rất lớn (hãy sửa cho tôi nếu tôi hiểu sai). Tôi có thể thấy điều đó, nhưng điều đó không giống như là "không mang tính xây dựng". Định nghĩa "không mang tính xây dựng" trong bản tóm tắt xuất hiện bên dưới cho thấy rõ rằng thẻ "không mang tính xây dựng" dành cho các câu hỏi không khách quan. Câu hỏi này là khách quan 100%. Meteor hoạt động theo cách nó hoạt động. Nếu nhiều ý kiến ​​bắt đầu xuất hiện ở đây, thì tất cả ngoại trừ một trong số đó sẽ sai.
Charlie Flowers

@mplungjan Tôi không thấy câu trả lời nào trong số này thỏa mãn vì không câu trả lời nào giải quyết thỏa đáng nguyên tắc Meteor của "Dữ liệu trên dây. Meteor không gửi HTML qua mạng. Máy chủ gửi dữ liệu và cho phép máy khách hiển thị". nguyên tắc đầu tiên trong 7 nguyên tắc.
Alexander Mills

Câu trả lời:


81

Meteor là một khung công tác cập nhật HTML một cách trang nhã trong thời gian thực.

Cái hay của Meteor là bạn chỉ cần tạo các mẫu và mô hình dữ liệu. Phần còn lại của mã bảng soạn sẵn thông thường bị ẩn đi. Bạn không cần phải viết tất cả mã đồng bộ hóa.

Các mảnh chính của Meteor có thể được tự xây dựng bằng cách sử dụng các mảnh sau:

  • Nó cung cấp tạo mẫu cập nhật tự động khi các mô hình dữ liệu của bạn hoạt động. Điều này thường được thực hiện bằng cách sử dụng Backbone.js , Ember.js , Knockout.js hoặc một công cụ khác.

  • Các tin nhắn client / server được thực hiện thông qua WebSockets sử dụng một cái gì đó giống như socks.js hoặc socket.io .

  • Kết nối phía máy khách với MongoDB thực sự rất tuyệt. Nó sao chép trình điều khiển máy chủ MongoDB vào máy khách. Thật không may, lần cuối tôi kiểm tra, họ vẫn đang làm việc để đảm bảo kết nối cơ sở dữ liệu này.

  • Việc bù đắp độ trễ chỉ đơn giản là cập nhật mô hình phía máy khách trước, sau đó gửi bản cập nhật đến máy chủ.

Bạn có thể tìm thấy những mảnh ghép gọn gàng khác trên trang Meteor hoặc trên GitHub .


10
Trong khi tốt đẹp, điều này không thực sự giải quyết câu hỏi.
Tù nhân ZERO

2
có thể nó trả lời câu hỏi ẩn trong câu hỏi
Muhammad Umer

1
Câu trả lời này nói rõ rằng sao băng thực hiện tất cả các giao tiếp máy khách / máy chủ bằng cách sử dụng cổng kết nối web. Tôi nghĩ rằng điều đó cũng đã trả lời câu hỏi.
Usama Ahmed

sao băng js và nút js vẫn còn liên quan trong v0.9?
yozawiratama

28

Tuyên bố từ chối trách nhiệm : Câu trả lời này mô tả Meteor , thư viện máy khách JavaScript cho Máy chủ Meteor . Ban đầu, nó được thêm vào do sự không rõ ràng trong câu hỏi và có thể phục vụ mục đích làm rõ những sự mơ hồ tương tự mà khách truy cập đang tìm kiếm câu trả lời tương tự phải đối mặt, nhưng không chắc chắn về sự khác biệt.

Để đọc về khung JavaScript Meteor , vui lòng xem câu trả lời này của xer0x .

Như đã đề cập trong tài liệu của Meteor Server, Meteor là một triển khai của Comet . Đến lượt mình, sao chổi là một đối tác của AJAX .

Trong trường hợp AJAX, bạn thường đưa ra yêu cầu khi khách hàng thấy cần phải làm điều đó. Để lấy các bản cập nhật từ máy chủ, bạn sẽ cần gọi máy chủ, ví dụ: cứ sau 5 giây.

Trong trường hợp Comet, bản cập nhật từ máy chủ đến nhanh hơn, do kết nối liên tục. Kết nối được thiết lập bởi máy khách, như trong AJAX, nhưng máy chủ không phản hồi cho đến khi nó có một số bản cập nhật hoặc đạt đến giới hạn thực thi (các tập lệnh trên máy chủ có thể có giới hạn thực thi).

Trong trường hợp Meteor, bạn chỉ nhận được luồng dữ liệu liên tục cần một số mã phía máy chủ cụ thể (như Meteor Server) và mã thích hợp trên máy khách (trong trường hợp này có vẻ như đó là lớp Meteor).


1
Có Meteor và có Meteor Server. Tôi có cảm giác câu hỏi ban đầu là về câu trước và câu trả lời này là về câu sau? meteor.commeteorserver.org
ile

2
Không, công cụ Meteor.com là một dạng nâng cao của Sao chổi. Cụ thể là nó sử dụng tính năng thăm dò dài, bạn có thể xem nó trong các công cụ dành cho nhà phát triển chrome.
wmil

1
@ile: Có, có khung JavaScript gọi là Meteor ( github.com/meteor/meteor ) và có Meteor.js , một phần khách hàng cho Meteor Server ( meteorserver.org/client-docs ). Tôi tin rằng đây là câu hỏi quá mơ hồ để có thể biết được OP nào trong số này thực sự nghĩ đến.
Tadeck

5
@ile Thực ra, tôi quan tâm đến meteor.com. Tôi thực sự không biết về meteorserver.org trước nhận xét của bạn.
Jatin

2
Khung meteor.js KHÔNG phải là máy chủ http sao băng. Mặc dù sự lựa chọn đặt tên kém của những người đã tạo ra khuôn khổ. Xem meteor.com để biết thêm.
xer0x

25

Tất cả điều kỳ diệu với việc cập nhật dữ liệu trực tiếp đang xảy ra nhờ vào hệ thống theo dõi sự phụ thuộc. Bạn có thể tìm thấy giải thích về cách hoạt động của nó tại phần Tracker của tài liệu.


Meteor.deps đã được đổi tên thành Meteor.tracker. Nguồn ở đây
Benjamin Crouzier

Tôi nghĩ điều này đã được chuyển đến docs.meteor.com/#/full/tracker
Nimir
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.