2014-09-11 1 views
2

응용 프로그램에서 주로 데이터베이스의 테이블 데이터를 표시합니다. 이러한 테이블은 페이지 매김, 정렬, 필터링을 적용해야합니다. 정렬 및 필터링을 위해서는 1st뿐만 아니라 전체 목록에 적용해야합니다. 페이지.프론트 엔드 또는 백엔드에서의 필터 페이지 매김 정렬

  • 백엔드에서 전체 목록을 검색 한 다음 자바 스크립트를 사용하여 프론트 엔드에 페이지 매김, 정렬, 필터를 적용 는 내 머리에 3 개 아이디어를 가지고있다. (이 방법은 매우 쉽고 많은 libs가 그것을 할 수 있음을 알았다).
  • 최대 절전 모드에서 필터를 정렬 (즉, 결과를 얻고 AJAX 호출 렌더를 프론트 엔드에 사용).
  • 자바 수준에서 정렬, 페이지 매김, 필터링을 수행합니다. (예. AJAX는 프론트 엔드에 렌더링 전화를 사용하여 다시 데이터베이스에서 전체 목록을 보려면 다음 봄 PagedListHolder이 페이지 매김을 사용하고 필터, 어쩌면 다른 프레임 워크를 정렬.와.)

을이 금액을 달성하기 위해 가장 적합한 방법 그 3 명? 또는 내가 생각하지 않은 다른 더 좋은 방법이 있습니다.

도움이나 의견을 보내 주셔서 감사합니다.

답변

3

얼마나 많은 데이터가 관련되어 있는지 말하지 않습니다. 그것이 많은 경우 분명히 주위에 보내고 싶지는 않습니다. 20GB를 브라우저의 자바 스크립트로 보내서 렌더링하지 마십시오.

일반적으로 결과 집합을 줄이고 가능한 한 데이터베이스에 최대한 근접하게 작업하는 것이 좋습니다. 그러나 당신은 동적 인 SQL로 너무 거칠고 싶지 않습니다. 사용자가 인덱싱되지 않은 데이터에 대한 거대한 쿼리를 발생시키지 않도록하려는 경우

저는 봄에 열렬한 팬입니다. 페이징 기능을 리포지토리 클래스의 손으로 최적화 된 쿼리와 결합 할 수 있다면 "최고"라고 생각합니다.

+0

답장을 보내 주셔서 감사합니다. 그게 날 많이 지워. 모델 세계에서 데이터가 얼마나 큰 것으로 간주 될지. 100-1000 개의 행과 10 개의 열이있는 테이블을 사용자가 아무런 지연없이 자바 스크립트를 사용하여 전송할 수 있다고 생각하십니까? – sh977218

+0

사용자에 따라 다릅니다. 그들은 회사의 LAN 사용자 (심지어는 비방)이거나 2G 모바일 고객 (EV 용)입니까? 더 나은 질문은 1000 개 또는 100 개 선택으로 원하는 것은 무엇입니까? 나는 그것을 더 적극적으로 시도하고 걸러 낼 것이다. 플러스 스프링 페이징도 잘하면 도움이됩니다. 사용자 경험을 염두에 두십시오. 아마 그렇게 많이 보낼 수 있습니까? 해야할까요? – Terry