2010-07-29 6 views
3

JSON 구문 분석 및 정렬에 대한 브라우저 제한 사항에 관한 기술적 인 질문입니다.브라우저에서 큰 데이터 세트 정렬/표시 - JSON의 양이 너무 많습니까?

쿼리에서 반환되고 테이블의 사용자에게 표시되는 대용량 데이터 세트 (잠재적으로 50K 행, 행 당 10 개의 필드)에 대해 클러스터링 알고리즘을 수행하고 있습니다. 페이지 당 25 개의 행과 모두에 정렬 가능합니다 전지. 클러스터링은 서버 측에서 수행되고 클러스터 된 결과를 JSON으로 클라이언트로 되돌려 보냅니다.

현재 클러스터 된 결과 데이터는 데이터베이스 테이블 내에 존재하지 않습니다. 이렇게하면 정렬 및 페이징 및 뒤로 버튼 지원에 대한 몇 가지 문제가 발생합니다.

"다음 페이지"및 "리조트"에 대한 쿼리를 다시 실행하는 대신 한 번에 모든 데이터를 잠재적으로 매우 큰 JSON으로 보내고 한 번에 25 개의 레코드 만 표시 할 수 있는지 궁금합니다. 페이징을 구현합니다. 그러나 사용자가 언제 리조트를 원하십니까? 브라우저가 50k + 행을 처리 할 수 ​​있습니까? 그리고 여전히 페이징 기능을 유지 하시겠습니까?

사용자 쿼리 결과에 대한 임시 테이블을 만드는 것이 더 좋을까요?

+0

필자는 모질라 모자를 쓰고 있기 때문에 이것이 더 빨라지고 느리고 특히 느린 경우 (특히 Firefox 4 베타 버전에서는 느린 경우) 너에게서 듣고. – zwol

+0

이봐, 난 더미 데이터를 만들어 테스트 해봤는데 결과가 좋지 않았다. 내가 만든 더미 json 데이터의 경우 각 레코드에는 4 개의 특성이 포함되어 있으며 모든 특성의 총 문자 수는 레코드 당 175 개입니다. 클러스터에는 7 개의 레코드와 클러스터 요약으로 표시되는 레코드가 포함되어 있습니다. 1000 클러스터의 경우 1.7 메가 비트 크기의 json 파일이 생성됩니다. 사용자가 18.5k 클러스터의 결과를 수신 할 가능성이 있으므로 ~ 31Mb의 json 데이터가 생성됩니다. 브라우저에서 열 수있는 json 파일의 최대 크기는 8MB입니다. ... 너무 많은 json ... 내가 생각하는 DB에서 임시 테이블로 이동하려고합니다. – Robbie

답변

0

jsonp를 사용하면 더 빠른 결과를 얻을 수 있습니다. 기본적으로 브라우저에 json을 스크립트로 취급하게하기 때문에 실용적인 것 외에는 크기에 제한이 있는지 여부는 알 수 없습니다. 결과를 페이징을 지원하는 일종의 데이터 구조로 처리해야하지만 어렵지 않습니다.

관련 문제