Google jQuery 호스팅 라이브러리-좋은가요?


14

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

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


1
간단한 구글 검색 woul 대답을 제공했습니다 ...
Francisco Presencia

답변:


18

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

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

잠재적 단점 :

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

3
로컬 폴백을 설정하는 방법에 대한 참조를 게시 할 수 있습니까?
Stephen Ostermiller

1
Zistolen이 이전에 지적한 바와 같이, 또 다른 이점은 웹 사이트와 다른 자산을 동시에 다운로드한다는 것입니다. 그렇지 않으면이 위대한 대답에도 추가하고 싶을 수도 있습니다.
nathangiesbrecht

약간 오해의 소지가 있습니다. 브라우저는 자산이 호스팅되는 위치에 상관없이 자산을 병렬로 다운로드하지만 동일한 호스트에서 한 번에 다운로드 할 수에는 제한이 있습니다.
팀 분수

솔직히 여기 저기에 있지도 않습니다. 파일이 병렬로 다운로드 될 수도 있지만 추가 DNS 조회이기도합니다. 게다가, 시간의 차이가 무엇이든 무시할 수 있습니다.
DisgruntledGoat

그럴 수 있지. 그러나 빠른 연결에서는 더 많은 "파이프"를 사용할 수 있기 때문에 총로드 시간이 더 빠를 수 없습니까?
nathangiesbrecht

11

또 다른 단점 :

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


방문자 추적이 아닌 확실한 추적 : jquery 자체 및 Google jquery CDN은 모두 쿠키를 설정하거나 사용하지 않는 도메인에 호스팅되며 (성능 최적화 일 수도 있음) 요청에 실제로 식별 가능한 정보가 없습니다. CDN 제공자는 IP 주소 및 사용자 에이전트 문자열 및 참조 자에 대한 일부 통계에 대한 아이디어를 얻을 수 있습니다. 이것은 아마도 귀중하지만, 그 자체로는 큰 개인 정보 보호 위험이 아닙니다 (이러한 기록이 다른 데이터베이스와 상관 관계가있는 경우-비슷한 시간에 맞춤 광고가 게재되는 경우 추적 수단 일 수 있음).
Eamon Nerbonne

거의 모든 사람들이 Google을 사용하여 항상 검색하기 때문에 데이터가 다른 데이터베이스와 상관 관계가 있다고 당연히 생각할 수 있습니다 (Google의 경우). Google 글꼴과 동일한 기능 : 최근에 서버에서 글꼴을 자체 호스팅하려고 시도했지만 글꼴이 매우 어렵다는 것을 알았습니다. Google은이를 금지하지 않지만 (오픈 소스) 파일을 즉시 사용할 수있는 방식으로 제공하지는 않습니다. 직접 컴파일 할 수 있지만 (makefile은 없음) 요청을 위조 할 수 있습니다 서버를 정상적으로 제공하는 데 사용됩니다. 둘 다 비전문가에게는 불가능합니다.
Jost

혹시. 내부 정보가 없으므로 확실히 말하기가 어렵습니다. 인터넷이 사용되는 대부분의 장소는 NAT로되어 있고 비슷한 기계를 가진 사용자가 거의 없습니다 (같은 UA 문자열). 어느 것이 아는 것이 불가능합니다. 요청은 누구로부터 온 것입니다. 물론 애드 센스 및 소셜 공유 버튼을 사용하면 거의 항상 신뢰할 수있는 수단을 가질 수 있으므로 귀찮게하지 않을 것이라고 상상할 수 있습니다. 글꼴에 관해서는-여러 번 다운로드 했으므로 이것이 어렵다는 것이 무엇을 의미하는지 이해하지 못합니까?
Eamon Nerbonne

분명히 : 나는 당신이하는 웹 사이트 방문의 대다수가 소셜 공유 버튼 (아주 널리 퍼져 있음)과 광고로 인해 큰 통계 수집가들에 의해 추적되고 추적 될 것이라고 가정하고 있습니다. 그래서 나는 너무 많이 캐시 된 js 요청에서 오해의 소지가있는 정보가 얼마나 귀중한 지 궁금합니다. 나는 그렇게 내기하지 않습니다. 따라서 그들이 CDN 제공 JS를 사용하여 사람들을 개인적으로 식별하려고 노력하지 않는다고 가정합니다.
Eamon Nerbonne

생각보다 캐시되지 않습니다. google이 fonts.googleapis.com에 CSS 링크를 삽입하여 선호하는 방식으로 글꼴을 포함하면 모든 단일 페이지보기가 Google에 연결됩니다 (Firebug에서 볼 수 있음). 캐싱 여부는 중요하지 않습니다. 다운로드에 관해서 : 고품질 eot, woff, ttf 및 svg 형식 (Google이 제공하는 것과 동일한 버전, 외부 변환기 없음)으로 글꼴을 다운로드 할 수있는 곳을 알려 주시겠습니까?
Jost

3

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

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

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

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

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

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

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

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


우연히도 하나의 요청 만 사용하여 약간의 바이트 쉐이빙이 가능합니다. gzip은 더 많은 컨텍스트에서 더 잘 작동하여 0.5k를 더 절약합니다. TCP, DNS, HTTPS 오버 헤드는 모두 여기 저기 KB를 쉽게 추가 할 수 있으며 RTT는 더 나빠질 수 있습니다. 그렇기 때문에 이와 같은 작은 파일의 경우 CDN이 생각보다 빠르지 않습니다.
Eamon Nerbonne

1

Google에서 jQuery 호스팅 라이브러리를 사용하면 페이지를 더 빨리로드 할 수 있습니다. 실제로 라이브러리는 페이지가 아닌 페이지와 동시에로드됩니다.


그러나 페이지로드에 어떤 영향을 미칩니 까?
Leo

1
페이지가로드되는 동안 로컬 라이브러리도로드됩니다. 두 경우 모두 (현대) 브라우저가 다운로드를 트리거하는 코드 스 니펫을 볼 때 자산 다운로드가 시작됩니다. 일반적으로 전체 문서를 다운로드하기 전에 발생합니다. 예를
들어이
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.