2013-08-03 4 views
0

저는 Kendo DataViz (MVC 용 Complete 사용)를 사용하고 있으며 단일 페이지 (대시 보드 페이지)에 여러 차트 (내 경우에는 18 개 차트)를 표시하는 가장 좋은 방법이 무엇인지 궁금합니다. EF 5, MVC 4 및 .NET 4를 사용하고 있습니다.검도 차트 : AJAX를 통한 데이터 또는 페이지로드 중 데이터?

페이지로드 중에 데이터를 가져와 필요한 모든 데이터가 포함 된 응답을 하나만 가져 오거나 각각의 데이터를 가져올 때까지 차트를 설정해야합니까? AJAX를 통해 페이지로드 응답과 18 건의 AJAX 요청이있을 것입니까? 참고로, 18 개 차트 각각에는 특정 데이터를 요청하는 자체 SP가 있으므로 18 개 미만의 DB 호출을 처리 할 필요가 없습니다.

멋진 새 비동기 물건 (C# 4.5 작업 클래스)에 액세스 할 수 없지만 AsyncController 항목을 사용할 수는 있지만 좋지는 않지만 여전히 기능은 좋지 않습니다.이 기능을 사용하면 18 개의 AJAX 호출이 꽤 복잡해집니다. 요청이 모두 동시에 실행되는 경우에도 매우 유사합니다. 반면에 병렬로드 라이브러리를 사용하여 Page Load 컨트롤러 메소드에서 18 개의 SP를 병렬로 호출 할 수있었습니다.

AJAX로가는 것은 사용자에게 더 나은 인식 성능을 줄 수 있지만 페이지로드를 사용하면 더 나은 실제 성능을 제공 할 수 있다는 것입니다.

귀하의 경험에 비추어 볼 때 제게 옳은 것을 말하고 있습니까? 추가 정보가 있으면 감사하겠습니다.

답변

1

모든 차트를 AJAX를 통해로드하도록 설정합니다. 초기 페이지로드는 순간적 일뿐만 아니라 여러 AJAX 호출이 동시에 발생하기 때문에 차트의로드가 본질적으로 비동기가됩니다 (한 번에 하나씩 차트가로드되는 것과 같지 않음).

18 개의 차트 모두에 대한 데이터를 단일 쿼리에서 검색 할 수 있다면 제안 했겠지만 그렇기 때문에 18 개의 저장 프로 시저가 실행될 때까지 대기하는 전체 페이지를 차단할 이유가 없습니다. 점진적으로 페이지를로드하면 인식 성능이 향상됩니다.

18 가지 다른 작업 방법을 통해 차트 데이터를 노출하면 추가 이점이 있습니다. 예를 들어 작업 방법 수준에서 출력 캐싱을 적용하고 15 분 동안 특정 차트를 캐싱하고 1 시간 동안 다른 차트를 적용 할 수 있습니다.