2013-08-23 8 views
0

Angularjs의 SPA 응용 프로그램을 개발하여 데이터베이스에 데이터를로드합니다.SPA 응용 프로그램 및 서버 동기화, 모범 사례

나는 REST 인터페이스를 제공하는 tastypie가있는 장고 백엔드를 가지고 있습니다.

8 레인 요소로 구성된 flowcell 객체를 채우려고합니다. 각 레인에는 여러 개의 라이브러리가 포함될 수 있습니다 (평균 5 또는 6).

Flowcell 

    Lane 1 
     library 1 
     library 2 
     library 3 
    Lane 2 
     library 5 
    Lane 3 
     library 6 
     library 7 
     etc..... 

그래서 내가 차선 객체에 새 라이브러리를 추가 순간, 나는 다음 GET 요청을 차선의 라이브러리 목록을 새로 고치 서버에 세부 사항을 POST, 디스플레이 새로 고침.

이렇게하면 서버 데이터와 디스플레이 데이터가 동기화됩니다. 그러나 각 레인이 서버에 접속하여 스스로 새로 고침하는 동안 지연이 추가됩니다.

클라이언트 측의 각 레인에 여러 라이브러리를 추가 한 다음 함께 업데이트하면 더 나은 사용자 경험을 얻을 수 있지만 디스플레이에 데이터베이스에있는 내용이 정확히 반영되지 않을 수 있습니다. (나는 이것이 동기화에서 너무 멀어지면 에러를 유발할 수 있다고 상상할 수있다).

또는 현재 수행중인 작업을 더 잘 수행한다고 생각하십니까? 여러 개의 작은 변경 사항을 업데이트하고 서버에 더 많은 요청을 보내지 만 클라이언트와 서버 간의 데이터를 일관성있게 유지해야합니까?

+0

레인 데이터를 동시에 편집하는 사람이 두 명 이상입니까? 즉, 사용자가 클라이언트에서 변경하지 않아도 서버 데이터가 동기화되지 않을 수 있습니까? –

답변

1

나는 당신이 올바른 길에 있다고 생각합니다. 귀하의 업데이 트에 더 세분화되는 접근 방식을 복용하는 것이 좋습니다.

주로 클라이언트에 대한 지연이 적습니다. 변경 사항이 적고 요소가 변경 될 때 실행 중지되면 네트워크가 실제로 느린 경우가 아니라면 각 변경 사항은 클라이언트가 신속하게 감지 할 수 있어야합니다.

내가 말한 유일한 것은 변경된 데이터를 POST 한 후에 다른 GET을 수행 할 필요가 없다는 것입니다. 이것은 많은 사용자와 세션에서 공유 데이터 모델이 아닌 한 클라이언트가 업데이트를 수행하고 POST가 완료되면 클라이언트는 올바른 데이터 집합을 보유하므로 추가 GET이 필요하지 않습니다.