2016-08-27 5 views
1

Meteor-JS는 오프라인 스토리지/캐시를 지원합니까? 내가 읽고 있어요 무엇에서Meteor-JS는 오프라인 스토리지/캐시를 지원합니까?

: https://guide.meteor.com/collections.html :

대신, 클라이언트에서, 모음은 데이터베이스의 클라이언트 측 캐시입니다. 이는 Minimongo 라이브러리 인 인 메모리 (모든 JS, MongoDB API 구현) 덕분에 가능합니다.

메모리 내 부분이 오프라인으로 작동하지 않는 것 같습니다. 내가 잘못?

편집 :

  • 가 편집 오프라인, 나중에 동기화 할 수 있도록 사용자의 데이터, 경우에도

    • 부하 심지어 인터넷 연결없이 앱 보여주는 "오프라인"으로 나는 그 자질의 가능한 한 많은 의미 예를 들면 오프라인 응용 프로그램을로드 할 때 시간
    • 오프라인 동안하지 아직 동기화 편집은

    EDIT2를 표시한다 : 나는 적절한 용어가 될 것 같아요 오프라인 처음이 기능은 '아무튼

  • 답변

    1

    당신은 Minimongo의 "메모리"부분에 대해 걱정할 필요가 있습니다. 그러나 오프라인 장치에서 이것은 다음과 같이 보일 정도로 나쁘지 않습니다. 앱이 메모리에 보관되어있는 경우 (브라우저를 통해 열면 탭에 앉아 있거나 Cordova 패키지 앱으로 열면 강제로 닫히지 않음) Minimongo는 귀하의 데이터를 저장하고 보유합니다.

    그러나 브라우저 탭을 닫거나 Cordova 앱에서 장치 메모리를 꺼내야합니다 (예 : 사용자가 작업 전환기/앱 관리자를 통해 닫거나 Android에서 RAM이 부족하여 사용하지 않는 앱을 ​​찾습니다). 또한 홈 화면으로 돌아가서 앱을 계속 유지하면 Minimongo (및 해당 데이터)가 사라집니다.

    하지만이 유스 케이스도 처리 할 수있는 패키지가 있습니다. How can Meteor apps work offline?

    1

    상자 밖으로 나오지 마라. 클라이언트를 변경하더라도 클라이언트에 반영되지만 일단 서버에 대한 연결이 설정되면 서버 데이터가 변경 사항을 무시합니다.

    데이터를 수동으로 밀어야합니다. 이렇게하는 한 가지 방법은 브라우저의 로컬 저장소를 사용하는 것입니다. 로컬 스토리지에 데이터를 저장하고 연결이 설정되면 서버에 밀어 넣어 변경 사항을 영구적으로 적용 할 수 있습니다.

    의견에서 지적한 바와 같이 : Meteor는 연결이 재설정 될 때까지 메소드를 계속 호출하려고 시도하지만 Meteor.call을 사용하지만 탭이 닫히면 클라이언트의 데이터가 손실됩니다. 따라서 데이터가 탭 닫기를 견디고 로컬 저장소에 저장해야합니다.

    +0

    변경된 내용이 'Meteor.call'을 통해 변경된 경우 실제로 클라이언트 (낙관적 UI)에 반영되지만 실제로 클라이언트는 계속 시도합니다 (https : //guide.meteor). com/methods.html # retries)를 호출하여 성공하거나 응용 프로그램이 닫힐 때까지 서버에 메서드 호출을 보냅니다 (그리고 Cordova가있는 장치의 메모리에서 제거 된 경우). – ghybs

    +0

    사용자가 탭을 닫았을 때 입력하려는 데이터가 손실되면 시도가 중단됩니다. – Ankit

    +0

    OP의 포인트는 브라우저를 통해 액세스하지 않고 하이브리드 앱에 더 많은 소리를냅니다.하이브리드 앱은 브라우저 탭보다 장치 메모리에서 훨씬 덜 자주 이동합니다. – ghybs