태그 보관물: hosted-service

hosted-service

Google jQuery 호스팅 라이브러리-좋은가요? jQuery 호스팅 라이브러리를 사용하면 얻을 수있는 실질적인

Google jQuery 호스팅 라이브러리를 사용하면 얻을 수있는 실질적인 이점이 있습니까? 아니면 그냥 서버로 다운로드할까요?

이것에 대한 당신의 의견은 무엇입니까?



답변

jQuery를 호스팅하기 위해 Google과 같은 외부 CDN을 사용하면 다음과 같은 두 가지 주요 이점이 있습니다.

  1. 더 빠릅니다. 확실히 사이트보다 빠르며 직접 설정 한 CDN보다 빠를 것입니다.
  2. 이미 캐시되어 있을 수 있습니다 . 많은 사이트가 Google의 CDN에서 jQuery를 참조하기 때문에 이전에 다른 사이트를 방문한 경우 다운로드하지 않아도됩니다.

잠재적 단점 :

  1. 도메인이 차단 될 수 있습니다 (이것은 중국과 같은 장소에서 매우 일반적이다). 로컬 폴백을 통해이 문제를 해결할 수 있습니다 ( 자세한 내용은 여기 참조 ).
  2. 버전 번호 의 조각화 는 상당히 높으므로 사이트 방문자는 캐시 된 버전이 많지만 참조한 버전이 아닐 수 있습니다 ( 최근 통계는 여기 참조 ). 이것은 첫 번째 페이지로드에서만 발생합니다.

답변

또 다른 단점 :

CDN을 사용하면 CDN 운영자가 사이트 방문자를 추적 할 수 있습니다. 그래서 비용이 들지 않습니다.


답변

CDN을 사용하여 이와 같은 많은 서버에서 종속성을 샤딩하는 것은 본질적으로 성능에만 관심이 있다고 가정 할 때 대역폭과 대기 시간 간의 상충 관계를 나타냅니다.

우연히 대안이 로컬에서 호스팅하는 것이 아니라 다른 로컬 요청과 연결하는 것으로 가정합니다. 일반적으로 가능할 때 연결하지 않는 좋은 이유는 없습니다.

대역폭이 무한하다면 가장 느린 서비스만큼 느리기 때문에 샤딩하지 않는 것이 가장 좋습니다. 대기 시간이 빠르더라도 충분한 서비스로 지연 시간을 완벽하게 예측할 수 없기 때문에 1 비트 만 있으면됩니다. 페이지로드가 느려질 수 있습니다.

대기 시간이 0 인 경우 많은 서버에로드를 분산하면 많은 서버를 활용하여 대역폭을 향상시킬 수 있습니다 (대역폭 제한이 서버가 아닌 클라이언트 근처에 있기 때문에 도움이되지는 않지만). 더 중요한 것은 전송되는 데이터의 양을 줄일 수 있습니다 캐싱의 효율성을 높여서

시나리오에 따라 다르지만 스크립트가 엄청나게 크지 않은 경우 (jquery가 아닌) 지연 시간이 대역폭보다 문제가 될 것으로 예상됩니다. 이 시점에서 일반적으로 연결된 로컬 파일의 일부로 jquery를 호스팅하는 것이 더 빠릅니다.

로컬로 호스팅하지 않는 이유는 대역폭을 지불하거나 느린 서버에서 호스팅하는 경우 (클라이언트와의 연결이 클라이언트 측이 아닌 병목 지점에 있거나) 클라이언트가 대역폭이 매우 낮다는 것을 알고있는 경우입니다. (하이 엔드 dsl 또는 모뎀, 예를 들어-모바일은 대역폭 문제보다 대기 시간 문제가 더 많은 경향이 있음) 또는 클라이언트가 대역폭 (예 : 모바일)에 대해 비용을 지불하고 스크립트는 사소한 캐싱에서 중요한 부분입니다 (아마도) ).

어쨌든 : 기본 사항을 먼저 다루 었는지 여부가 훨씬 더 관련이 있습니다. 적절한 캐싱 헤더, 연결, 최소화 및 gzipping (압축률이 높은) 그리고 여기에 핵심이 있습니다. 만약 그렇게 하지 않으면, 적어도 CDN은 그렇게 할 것입니다.

TL; DR : 연결 + 축소 + gzipping + 캐싱을 모두 포함 하는 경우 CDN의 성능 향상에도 불구하고 작은 스크립트를 로컬로 제공하는 것이 CDN보다 빠릅니다. 하지만 숙제를 한 경우에만 첫 페이지에 있지는 않습니다. 이 규칙에는 예외가 있습니다.