답변:
그것은 당신이하는 일과 어떻게하는지에 달려 있습니다.
전체 페이지로드를 AJAX 요청으로 바꾸는 경우 (즉, 사용자가 전체 페이지로드 된 항목을 클릭 할 때 AJAX 호출 만 수행하는 경우) AJAX는 처리량이 적고 리턴 량이 적기 때문에 서버로드를 줄입니다. 데이터.
반면, 몇 초마다 서버를 폴링하는 자동 업데이트 유형 AJAX를 추가 하면 사용자에 따라 부하 가 증가 할 수 있습니다 (사용자가 수동으로 새로 고치기 위해 F5를 계속 누르고 있으면 서버 부하가 증가하지 않을 수 있지만 대부분의 사람들은 일반적으로 몇 시간 동안 그렇게하지 않습니다)
또 다른 AJAX 최적화는 스크롤 할 때 더 많은 데이터 만로드하는 것입니다. 이 경우 사용자가 완전히 아래로 스크롤하지 않으면 처리가 낭비됩니다.
물론 실제로 구현은 어느 쪽이든 결과를 왜곡시킬 수 있으며, 이는 합리적으로 우수한 구현을 가정하는 전형적인 결과입니다.
물론 서버로드를 줄이는 역할을합니다. 에서 봐 jsconf'09 @이 프레젠테이션 - 페이스 북이 그렇게 아약스를 사용하는 방법에 대한.
Ajax는 비동기입니다. 서버 통신-다양한 방법으로 사용할 수 있습니다. 사람들은 간단한 JSON을 실시간 웹에로드하는 데 사용하며 그 사이의 모든 것을 사용합니다.
실제 과제는 클라이언트와 서버 간의 균형 입니다. 각 당사자가 시스템을 최적화하고 인식 된 응답 성과 실제 속도의 명백한 이점을 얻을 수 있도록 업무를 수행하도록 노력하십시오.
고려하지 않는 다른 요소가 있습니다. 대부분의 경우 AJAX는 서버로드를 증가시킵니다. 일반적인 비 아약스 시나리오에서 사용자는 몇 초 또는 몇 분마다 하나의 큰 페이지를로드합니다. 예, 해당 단일 페이지는 서버에서 약간 더 많은 작업이지만 요청간에 다른 요청을 복구하고 제공하는 데 많은 시간이 필요합니다. AJAXified 시나리오에서 단일 페이지로드는 이제 수십 번의 작은 적중으로 서버를 지속적으로 망치고 응답을 기다립니다.
그것은 1000 컷으로 인한 죽음과 비슷합니다. 요청 자체가 그다지 크지는 않지만 총 무게는 킬러입니다. 특히 이러한 작은 요청이 전체 페이지 요청으로 사용하기에는 비용이 많이 든다는 것을 고려하기 시작할 때 특히 그렇습니다. 두 경우 모두 전체 웹 애플리케이션 파이프 라인을 통해 실행 중일 수 있으며 귀중한 HTTP 연결에 앉아있는 동안 데이터베이스에 충돌하고 응답을 기다리는 중입니다.
다음은 서버에서 ajax가 어떻게 추악해질 수 있는지에 대한 예입니다. 위젯을위한 4 개의 슬롯이있는 일반적인 "실행 대시 보드"를 보자. CEO가 오른쪽에 전체 판매 보고서, 중간에 상위 10 명의 수익자 목록, 오른쪽에 회사 주가 보고서를 좋아한다고 가정합니다. 간단한 아약스 원격 요청을 통해이 작업을 수행한다고 가정하겠습니다. 스타일 시트, 이미지 및 기타 자산을 고려하지 않고 이제 서버에 대해 4 개의 HTTP 왕복 (기본 페이지, 각 대시 보드 보고서)이 필요합니다. 이들 각각을 실행하려면 완전한 웹 스택이 필요합니다. 웹 프레임 워크를 사용하여 데이터베이스를 공격하고 HTML을 렌더링 할 것입니까? 이제 단일 CEO와 일부 원격 사용자가있는 2000 명의 원격 사용자를 곱하십시오.
반대로, 보고서를 렌더링하기 위해 HTML 스켈레톤과 데이터 (인 페이지 JSON에 포함)를 실행하고 반환하는 단일 서버 측 페이지를 가질 수 있습니다. 하나의 더 큰 연결이지만 4 개의 요청을 처리하지 않고 4 개의 파이프 라인을 회전시키기 때문에 웹 서버에서 전체적으로 덜 치는 경우
HTML 렌더링이 응용 프로그램 서버 성능 프로필의 큰 부분 인 경우 HTML 렌더링을 클라이언트로 이동하면 응용 프로그램 서버에서 성능이 향상 될 수 있습니다.
그러나 HTML 렌더링이 응용 프로그램 서버 성능 프로필의 일부인 경우 일반적으로 요청이 많을수록 스택을 통한 더 많은 트립, 더 많은 쿼리, 응용 프로그램 서버의 모든 것, 성능 손실을 의미합니다.
물론, 특정한 경우를 아는 유일한 방법은 시도해 보는 것입니다.
솔루션을 구현하는 가장 좋은 방법을 고려해야합니다. 단순한 비 동적 형태는 아약스가 필요하지 않으며 추가하면 실제로 성능에 해를 줄 수 있습니다. 문제가 나쁜 쿼리라면 전 세계의 모든 아약스 최적화가 성능 향상을 얻지 못할 것입니다.
서버가 과도하게 작동하면 이유를 알아야합니다.
많은 히트가 발생하면 ajax가 해당 문제를 해결하지 못하므로 더 많은 용량이 필요합니다. 아약스를 추가하면 서버가 처리해야하는 요청 수가 늘어납니다.
복잡한 페이지가있는 경우 클라이언트 측에서 서버의로드를 줄이기 위해 수행 할 수있는 작업이 있는지 확인해야합니다. 페이지가 동적이지만 실제로 클라이언트 측 조정을위한 데이터 패키지 캐싱이 제한된 경우 더 나은 결과를 얻을 수 있습니다.
때로는 Ajax가 도움이 될 것입니다. 동적 데이터가 포함 된 복잡한 양식을 사용하면 당일 승리합니다. 그러나 쿼리가 복잡하고 실행하는 데 시간이 오래 걸리더라도 ajax는 여전히 문제를 해결하지 못합니다.