2017-04-07 1 views
0

Dataview와 함께 Slickgrid를 사용하여 Laravel을 사용하여 MySQL 데이터베이스에서 데이터를 가져 와서 최대 5000 행의 테이블을 편집합니다. 이 동결하지 않고 데이터를 저장하는 방법이데이터베이스와 데이터 뷰 동기화

function TestSave() { 

    var request; 
    var token = $('meta[name="csrf-token"]').attr('content'); 

    request = $.ajax({ 
     url: "/est/public/estimate/{{ $id }}", 
     type: "PATCH", 
     dataType: "json", 
     params: {_token:token}, 
     async: true, 
     data: { data: JSON.stringify(dataView.getItems()), _token:token 
     } 
    }); 

} 

있습니까 : 나는이 AJAX 데이터베이스에 모든 데이터를 저장하지만이 몇 초 동안 그리드를 매우 느리게 실행 및 정지 기능을 저장 만들었습니다? grid.onClick 또는 onBeforeEditCell을 사용하여 변경 될 때 개별 행을 개별적으로 저장하는 것을 생각했지만 행을 삽입하는 기능은 삽입 아래의 모든 행에 "order"값을 변경하는 것과 같은 기능을합니다.

Dataview 및 데이터베이스를 동기화 상태로 유지하는 가장 좋은 방법은 무엇입니까?

답변

0

이것은 복잡한 문제입니다.
첫째, ajax 호출은 비동기 적이어야하므로 5 초 동안 차단해서는 안됩니다.
그러나 서버에 5000 개의 행을 모두 전달하는 경우 JSON 인코딩이 오래 걸릴 수 있습니다. 변경된 행만 서버에 전달하는 것이 가장 좋습니다. 그러나 그 자체로는 처음에는 훨씬 더 복잡합니다.

데이터를 처리 할 때 기존 프레임 워크를 사용하는 것이 가장 좋을 수 있습니다. Breeze는 좋은 선택입니다.

관련 문제