나는 우연히 유성 하고 흥미로운 보인다 동안, 나는 그것이 어떻게 작동하는지 알고 싶어요. 즉, 기존의 웹 응용 프로그램은 다음과 같이 작동합니다. 데이터베이스에서 데이터를 가져와 웹 페이지에 동적으로 추가하는 스크립트가 서버에 있으며 사용자가 제출 한 데이터는 다른 스크립트를 통해 데이터베이스에 추가됩니다.
그러나 이러한 것들이 Meteor에서 어떻게 작동합니까? Meteor의 다른 부분은 서로 어떻게 관련되어 있습니까?
나는 우연히 유성 하고 흥미로운 보인다 동안, 나는 그것이 어떻게 작동하는지 알고 싶어요. 즉, 기존의 웹 응용 프로그램은 다음과 같이 작동합니다. 데이터베이스에서 데이터를 가져와 웹 페이지에 동적으로 추가하는 스크립트가 서버에 있으며 사용자가 제출 한 데이터는 다른 스크립트를 통해 데이터베이스에 추가됩니다.
그러나 이러한 것들이 Meteor에서 어떻게 작동합니까? Meteor의 다른 부분은 서로 어떻게 관련되어 있습니까?
답변:
Meteor 는 HTML을 실시간으로 우아하게 업데이트하는 프레임 워크입니다.
Meteor의 장점은 템플릿과 데이터 모델 만 생성하면된다는 것입니다. 나머지 일반적인 상용구 코드는 숨겨져 있습니다. 모든 동기화 코드를 작성할 필요는 없습니다.
Meteor의 핵심 조각은 다음 조각을 사용하여 직접 만들 수 있습니다.
데이터 모델이 업데이트 될 때 자동으로 업데이트되는 템플릿 을 제공합니다 . 일반적으로 Backbone.js , Ember.js , Knockout.js 또는 다른 도구를 사용하여 수행됩니다 .
클라이언트 / 서버 메시징 을 통해 이루어집니다 WebSocket을 같은 것을 사용 socks.js 또는 socket.io를 .
MongoDB에 대한 클라이언트 측 연결 은 정말 멋집니다. MongoDB 서버 드라이버를 클라이언트에 복제합니다. 불행히도 마지막으로 확인한 결과이 데이터베이스 연결을 보호하는 작업을 계속하고있었습니다.
지연 보상은 간단히 서버 서버에 업데이트를 전송, 먼저 클라이언트 측 모델을 업데이트하고 있습니다.
면책 조항 :이 답변은 Meteor Server 용 JavaScript 클라이언트 라이브러리 인 Meteor 에 대해 설명 합니다. 원래 질문의 모호함으로 인해 추가되었으며 유사한 답변을 검색하는 방문자가 직면 한 유사한 모호함을 명확히하는 데 도움이 될 수 있지만 차이점에 대해서는 확신이 없습니다.
Meteor JavaScript 프레임 워크 에 대해 읽으려면 xer0x 의이 답변 을 참조하십시오 .
Meteor Server의 문서에서 언급했듯이 Meteor는 Comet 의 구현입니다 . 차례로 혜성은 AJAX 의 대응 물입니다 .
AJAX의 경우 일반적으로 클라이언트가이를 수행해야한다고 판단 할 때 요청합니다. 서버에서 업데이트를 가져 오려면 서버를 호출해야합니다. 5 초마다.
Comet의 경우 연결이 지속적이기 때문에 서버에서 업데이트가 더 빨라집니다. 연결은 AJAX에서와 같이 클라이언트에 의해 설정되지만 서버는 업데이트가 있거나 실행 제한에 도달 할 때까지 응답하지 않습니다 (서버의 스크립트에 실행 제한이있을 수 있음).
Meteor의 경우 특정 서버 측 코드 (예 : Meteor Server)와 클라이언트에서 적절한 코드 (이 경우 Meteor 클래스처럼 보입니다)가 필요한 데이터의 지속적인 스트림을 얻을 수 있습니다.
실시간 데이터 업데이트의 모든 마법은 종속성 추적 시스템으로 인해 발생합니다. 작동 방식에 대한 설명은 추적기 에서 찾을 수 있습니다. 문서 섹션 .