2011-01-28 15 views
1

가장 좋은 방법은 무엇인지 궁금합니다. 드롭 다운 선택 위젯이 있다고 가정 해 보겠습니다. 페이지가 서버에서 제공되거나로드 된 후 내용이 미리로드되어야하는 경우 AJAX 요청을 통해 내용을 검색하고 채워야합니까?서버 측 대 클라이언트 측 (AJAX) 로딩

나는 그것을 비어있는 것으로로드하고 AJAX 호출을 발행하여 내용을 검색한다는 아이디어를 좋아한다. 하지만 그로 인해 페이지 로딩 속도가 느려집니다. 특히 페이지에 서버의 컨텐츠를로드해야하는 여러 위젯이있는 경우?

로드되는 콘텐츠의 양에 영향을 줍니까?

드롭 다운 예에서 드롭 다운의 옵션을 의미했습니다. 그래서 내가 선택하는 직원의 드롭 다운을 가지고 있다면, 나는 그 직원리스트를 언급하고 있습니다. 빈 드롭 다운을로드하고 컨트롤러 초기화시 직원을 검색하고 드롭 다운을 채우게할까요?

하지만 데이터베이스에 저장된 emplyees와 일부 직원 데이터의 200 행을 가정 해 봅시다. 페이지를로드하고 페이지에로드 할 때 init 함수가 직원의 데이터 집합을 검색하고 데이터 격자를 채우고 표시하는 컨트롤러가 있습니까?

페이지가 서버에서 제공되는 경우 서버 측에서 데이터 그리드도 생성하고로드 된 서버 측의 데이터 세트를 검색합니다. 이것은 과거에 PHP, JSP 및 ASP를 대부분 사용하는 데 익숙한 프로그래밍 세계입니다. 어떤 멋진 페이지 효과 등을 위해서만 자바 스크립트를 사용하십시오.

페이지가 로딩되거나로드 될 때 아이디어가 마음에 들지만, AJAX 요청은 위젯/컨텐츠를 채우기 위해 필요한 데이터를 검색해야합니다. 현재 화면. 지금은 페이지를 그리는 서버에 더 많은 요청을하고 있기 때문에 페이지로드가 느려지거나 느린 것으로 우려됩니다. 페이지에 대한 초기 요청과 위젯을 채우기 위해 필요한 각 데이터 집합에 대한 요청입니다.

답변

1

AJAX로 모든 것을로드하면 페이지가 느려질 것입니다. 실제로 웹 페이지의 속도를 높이는 가장 좋은 방법 중 하나는 HTTP 요청 수를 줄이는 것입니다.

즉, AJAX가 페이지를 더 빠르게로드하는 경우가 있습니다. 한 가지 예는 텍스트 상자의 자동 완성입니다. AJAX를 사용하지 않고 이러한 기능을 구현하면 웹 페이지가 첫 번째로드에서 가능한 모든 쿼리를로드해야합니다. 페이지는 모든 데이터를로드하는 데 오래 걸릴 것입니다. 그러나 자동 완성은 페이지가로드되면 정상적인 응답보다 더 많이 보일 것입니다.

제 조언은 생각할 수있는 가장 간단한 솔루션으로 시작한 다음 필요에 따라 AJAX, 캐시 및 기타 최적화 기능을 추가하는 것입니다.

0

표시되는 데이터에 따라 다르지만 데이터베이스에서 빠르게 업데이트하려는 경우 ajax 방식을 사용하는 것이 좋습니다. 그러나 데이터가 고정 된 경우 (또는 페이지가로드 된 후 업데이트하는 데 신경 쓰지 않는다면) 아약스 접근 방식을 사용하지 말고 더 많은 작업을 수행해야합니다 (JSON 요청, 구문 분석, 선택 항목 채우기) 너는 많은 유익을 얻지 못한다.

3

최상의 답변은 "귀하의 프레임 워크에 달려 있습니다"라고 생각합니다. 이 문제를 두 가지 방법으로 처리하는 웹 프레임 워크를 보았습니다. 나는 특히 많은 데이터가 DOM에 채워지는 경우 성능면에서 초기 HTTP 응답에서 최대한 많은 페이지를로드하고 AJAX를 통해 필요에 따라 업데이트하는 것이 바람직하다고 생각합니다.대용량 데이터 세트의 경우 추가 HTTP 요청의 성능 오버 헤드는 JavaScript를 통한 상당한 DOM 조작의 영향에 비해 상대적으로 적습니다. DOM 조작은 일부 브라우저에서 매우 느릴 수 있습니다.

사용중인 프레임 워크를 추가하면 더 자세한 답변을 얻을 수 있습니다.

관련 문제