Nice programing

AngularJS는 서버와 클라이언트 사이에서 자동으로 데이터 동기화

nicepro 2020. 12. 12. 12:29
반응형

AngularJS는 서버와 클라이언트 사이에서 자동으로 데이터 동기화


AngularJS 문서에 내가 찾을 수 없거나 그냥 놓친 것 같은 것이 있습니다.

백엔드에서 NodeJS 및 Express로 웹 앱을 만들고 있으며 프론트 엔드에서 Angular와 상호 작용할 수있는 방법을 이해하려고합니다. 특히, Angular에서 정보를 가져올 JSON API가 있습니다. 프런트 엔드가 항상 최신 상태를 유지하고 싶습니다.

내 질문은 다음과 같습니다.

  • 양방향 데이터 바인딩 기능은 Angular ($ resource 또는 $ http)가 n마다 서버에서 데이터를 자동으로 가져 오는 것을 의미 합니까?
  • 자연스럽게 긴 폴링, 짧은 폴링 또는 웹 소켓을 사용합니까?
  • 서버-클라이언트 동기화를 달성하기 위해 JQuery가 필요합니까? 아니면 Angular로 모든 작업을 수행 할 수 있습니까?
  • 이 동작이 발생하도록 추가 코드를 추가해야합니까? $ timeout을 사용해야합니까?

내가 찾은 모든 예는 클라이언트가 데이터를 한 번 가져 오는 것과 관련이 있습니다. 데이터를 서버와 동기화하지 않습니다.


AngularJS의 양방향 바인딩은 데이터 모델 ($ scope)과 뷰 (지시문)를 참조합니다. 예를 들어 모델의 데이터가 변경되면 뷰가 자동으로 업데이트됩니다. 마찬가지로 사용자가 뷰에서 데이터를 수정하면 모델이 자동으로 업데이트됩니다.

웹 서비스와의 상호 작용은 $ http 서비스 모듈을 통해 수행됩니다. 따라서 RESTful API에서 데이터를 가져 오려면 다음과 같이해야합니다.

$http.get('/someUrl').success(successCallback);

$ http에 대한 전체 문서는 AngularJS 사이트에 있습니다 . jQuery의 $ .ajax 메소드와 매우 유사하다고 생각합니다. angular의 $ timeout 서비스 (기본적으로 setTimeout의 래퍼)로 짧은 폴링을 위해 $ http.get ()을 쉽게 설정할 수 있습니다.

AngularJS 클라이언트와 서버 API 간의 실시간 업데이트의 경우 Socket.io 를 살펴볼 수 있습니다 . node.js를 사용하여 브라우저와 서버 사이에 라이브 소켓 연결을 만들고 이전 브라우저에 대한 대체 메커니즘 (플래시, 롱 폴링)을 가지고 있습니다. GitHub에는 Socket.io로 AngularJS를 설정하는 방법을 보여주는 상용구 프로젝트가 있습니다. https://github.com/btford/angular-socket-io-seed

요약하자면:

양방향 데이터 바인딩 기능은 Angular ($ resource 또는 $ http)가 n 초마다 서버에서 데이터를 자동으로 가져 오는 것을 의미합니까?

아니요, 양방향 바인딩은 Angular 모델과 뷰 사이에 있습니다.

자연스럽게 긴 폴링, 짧은 폴링 또는 웹 소켓을 사용합니까?

Angular에는 기본적으로 이러한 항목이 포함되어 있지 않습니다. 직접 설정해야합니다.

서버-클라이언트 동기화를 달성하기 위해 JQuery가 필요합니까? 아니면 Angular로 모든 작업을 수행 할 수 있습니까?

$ http는 넓은 의미에서 jQuery의 $ .ajax에 해당하는 Angular입니다.

이 동작이 발생하도록 추가 코드를 추가해야합니까? $ timeout을 사용해야합니까?

짧은 폴링에 $ timeout을 사용하거나 긴 폴링 및 / 또는 웹 소켓에 대한 자체 솔루션을 롤링하십시오 ( angular-socket-io-seed 프로젝트 참조).

참고 URL : https://stackoverflow.com/questions/15416879/angularjs-automatically-syncing-data-between-server-and-client

반응형