2017-05-16 9 views
0

각도 2의 응용 프로그램에서는 UI 화면의 입력 태그 값이 변경 될 때마다 데이터베이스를 업데이트해야합니다.각도 값 2의 입력 값 자동 저장을 구현하는 가장 좋은 방법

다음과 같은 방식으로이 변경 사항을 업데이트해야합니다. 1. 애플리케이션 최종 사용자의 경우 입력 값이 자동 저장되었습니다. 2. 내 응용 프로그램 페이지에는 API 히트를 사용하여 30 초마다 페이지가 자동으로 새로 고쳐지는 새로 고침 기능이 있습니다.

응용 프로그램의 새로 고침 기능과 충돌하지 않도록 자동 저장 기능을 구현하는 적절한 방법은 사용자가 29 초에 변경하고 30 초에 페이지가 새로 고침되면 사용자가 입력 한 데이터를 보존해야합니까?

필자가 알고 있듯이 입력 태그의 모든 키 입력에 대해 데이터베이스를 호출하는 것은 매우 비용이 많이 드는 프로세스입니다.

유용하고 효율적인 방법을 제안하십시오.

+0

당신은 입력 필드 또는 페이지 새로 고침 호출의 일환으로'onblur'event에 하나 절약 할 수있다? –

+0

데이터베이스에 대한 호출이 항상 작동하는 것은 아니기 때문에 일부 입력 필드는 양식 컨트롤을 사용합니다. 특정 문제를 명확히하고 작성한 코드와 오류가 있으면 추가하십시오. –

+0

@ NathanFoss 현재 데이터 저장을 위해 blur 이벤트를 사용하고 있지만 사용자가 데이터를 입력하는 동안 페이지가 중간에 새로 고쳐질 때 시나리오를 처리하는 방법. –

답변

0

변경 사항을 BehaviourSubject에 게시하고 각 방출을 지연하여 클라이언트가 너무 많은 요청을하지 않도록 할 수 있습니다.

Form.html

<input (change)="captureChange($event.target.value)"/> 

Logic.ts

public $changeValues : Subject = new BehaviourSubject(); 

captureChange(val){ 
    this.changeValues.next(val) 
} 

ngOnInit(){ 
    $changeValues 
    .debounceTime(/** some time you wish to delay by*/) 
    .subscribe(val => autosave(val)) 
} 
autosave(){ 
    /** 

    Make HTTP Request 


    **/ 
}