2013-05-29 2 views
0

내보기에서 눈금을 채우는 json을 반환하는 컨트롤러가 있습니다. 항상 최대 값으로 MaxJsonLength를 설정하는 것이 안전합니다,MaxJsonLength는 항상 최대 값으로 설정하는 것이 안전합니까?

var jsonResult = Json(result, JsonRequestBehavior.AllowGet); 
jsonResult.MaxJsonLength = int.MaxValue; 

내 질문은 : 필터에 따라 사용자가 하나의 호출에 많은 양의 데이터를 검색 할 수는 그래서 최대에 MaxJsonLength을 설정? 그 이유는 무엇입니까? (있는 경우)

이 게시물을 발견했지만 내 질문에 답변하지 않았습니다.

What is MaxJSONlength good for?

나는 여기에 전문 지식이 필요합니다. 미리 감사드립니다!

답변

1

각 호출마다 MaxValue으로 설정하는 것이 좋습니다. 그것은 귀하의 응용 프로그램을 깰 것이라는 의미는 아니지만 귀하의 응용 프로그램이 깨진 것처럼 보일 수 있습니다.
한 번 같은 문제가있었습니다. 사용자가 더 큰 데이터 집합을 요청했을 수도 있습니다. 인터넷 연결을 통해 10-50 메가 바이트와 마찬가지로 LAN이 아니라. 불가능한 것은 없습니다. 그러한 데이터 세트를 보낼 수 있습니다. 그러나 응용 프로그램이 느려질 것입니다. 브라우저가 데이터를 기다리는 중입니다. 사용자가 페이지를 사용할 수있게되기까지 오랜 시간 동안 기다려야합니다. 그러면 응용 프로그램에서 버그를보고하거나보고하는 등 어리석은 일을하게됩니다. 정말 버그 야? 귀하의 요구 사항에 따라 다르지만, 나는 그렇다고 대답 할 것입니다.

페이지 매김을 제공하고 수행해야 할 작업은 페이지 매김을 제공하는 것입니다. 사용자에게 작은 데이터 세트를 보내고 즉시 표시하고 사용자가 작업 할 수있게 한 다음 필요에 따라 추가 데이터를 보냅니다. 또는 항상 필요한 경우 - 백그라운드에서 패키지로 자동 전송하지만 더 작은 세트에서는 빠르게 표시됩니다. 사용자는 자신의 페이지를 신속하게 준비하고 대부분의 시간에 모든 데이터가 이미 존재한다는 것을 알지 못할 것입니다. 필요할 때가되면 이미 다운로드 될 것입니다.
AJAX에 대한 오늘의 supprot를 사용하면 그 일을하는 것과 같은 일은 전체 데이터를 한 번에 표시하고 표시하는 것보다 더 어렵지 않아야합니다.

+0

감사 파코! 그러나 문제는 그리드 열을 사용자 정의 할 수 있다는 것입니다. 의미, 사용자는 그리드에 관련된 열을 추가 할 수 있습니다. 그는 그리드의 모든 30 개의 열을 추가하고 페이지 당 20 개의 레코드를 검색한다고 가정 해보십시오. 데이터 트래픽은 여전히 ​​소량의 레코드를 가져 왔지만 여전히 많은 양의 데이터 트래픽이 발생합니다. –

+0

네,하지만 htose 열의 데이터에 따라 달라집니다 - 20 레코드 x 30 컬럼은 여전히 ​​200 레코드 x 30 컬럼보다 훨씬 적습니다. 그러한 경우를 처리하는 방법에 대한 완벽한 대답은 없지만, 페이징은 당신이 찾고 있어야하는 것입니다. 또한 요청에 따라 열을로드하거나 별도의 요청으로 더 긴 (긴 텍스트와 같은) 열의 데이터를로드하여 초기 데이터를 빠르게 사용할 수 있고 긴 데이터를 두 번째 또는 두 번째 나중에로드 할 수있는 변형을 만들 수 있습니다. 스피너 또는 omething) – Pako

+0

돌아가서, MaxJsonLength를 '최대'로 설정하면 아무 문제가 없다고 말하는 것입니다. 하지만 성능면에서는 최대 한계에 도달하지 않는 한 문제가되지 않을 것입니다. –

관련 문제