답변:
jQuery를 호스팅하기 위해 Google과 같은 외부 CDN을 사용하면 다음과 같은 두 가지 주요 이점이 있습니다.
잠재적 단점 :
또 다른 단점 :
CDN을 사용하면 CDN 운영자가 사이트 방문자를 추적 할 수 있습니다. 그래서 비용이 들지 않습니다.
CDN을 사용하여 이와 같은 많은 서버에서 종속성을 샤딩하는 것은 본질적으로 성능에만 관심이 있다고 가정 할 때 대역폭과 대기 시간 간의 상충 관계를 나타냅니다.
우연히 대안이 로컬에서 호스팅하는 것이 아니라 다른 로컬 요청과 연결하는 것으로 가정합니다. 일반적으로 가능할 때 연결하지 않는 좋은 이유는 없습니다.
대역폭이 무한하다면 가장 느린 서비스만큼 느리기 때문에 샤딩하지 않는 것이 가장 좋습니다. 대기 시간이 빠르더라도 충분한 서비스로 지연 시간을 완벽하게 예측할 수 없기 때문에 1 비트 만 있으면됩니다. 페이지로드가 느려질 수 있습니다.
대기 시간이 0 인 경우 많은 서버에로드를 분산하면 많은 서버를 활용하여 대역폭을 향상시킬 수 있습니다 (대역폭 제한이 서버가 아닌 클라이언트 근처에 있기 때문에 도움이되지는 않지만). 더 중요한 것은 전송되는 데이터의 양을 줄일 수 있습니다 캐싱의 효율성을 높여서
시나리오에 따라 다르지만 스크립트가 엄청나게 크지 않은 경우 (jquery가 아닌) 지연 시간이 대역폭보다 문제가 될 것으로 예상됩니다. 이 시점에서 일반적으로 연결된 로컬 파일의 일부로 jquery를 호스팅하는 것이 더 빠릅니다.
로컬로 호스팅하지 않는 이유는 대역폭을 지불하거나 느린 서버에서 호스팅하는 경우 (클라이언트와의 연결이 클라이언트 측이 아닌 병목 지점에 있거나) 클라이언트가 대역폭이 매우 낮다는 것을 알고있는 경우입니다. (하이 엔드 dsl 또는 모뎀, 예를 들어-모바일은 대역폭 문제보다 대기 시간 문제가 더 많은 경향이 있음) 또는 클라이언트가 대역폭 (예 : 모바일)에 대해 비용을 지불하고 스크립트는 사소한 캐싱에서 중요한 부분입니다 (아마도) ).
어쨌든 : 기본 사항을 먼저 다루 었는지 여부가 훨씬 더 관련이 있습니다. 적절한 캐싱 헤더, 연결, 최소화 및 gzipping (압축률이 높은) 그리고 여기에 핵심이 있습니다. 만약 그렇게 하지 않으면, 적어도 CDN은 그렇게 할 것입니다.
TL; DR : 연결 + 축소 + gzipping + 캐싱을 모두 포함 하는 경우 CDN의 성능 향상에도 불구하고 작은 스크립트를 로컬로 제공하는 것이 CDN보다 빠릅니다. 하지만 숙제를 한 경우에만 첫 페이지에 있지는 않습니다. 이 규칙에는 예외가 있습니다.