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 프로젝트 참조).
'Nice programing' 카테고리의 다른 글
JSON 개체에 변수 이름 값 쌍을 동적으로 추가 (0) | 2020.12.13 |
---|---|
TypeScript에서 배열을 인스턴스화, 초기화 및 채우는 방법은 무엇입니까? (0) | 2020.12.12 |
git bisect를 어떻게 중지합니까? (0) | 2020.12.12 |
GNU 컴파일러 경고 "클래스에는 가상 기능이 있지만 비가 상 소멸자" (0) | 2020.12.12 |
Qt에서 크로스 스레드 신호를 방출하는 방법은 무엇입니까? (0) | 2020.12.12 |