jQuery에 Google의 CDN을 사용해야하는 이유는 무엇입니까?


169

일부 사람들에게는 이것이 분명 할 수도 있지만 궁금합니다. 왜 내 사이트의 jQuery를 호스팅하기 위해 Google 서버 에 의존해야 합니까?

이 방법으로 더 빨리로드되기 때문입니까?



2
JS 정책에 대한 핫 링크에 대한 Google의 정책에 대해 언급 한 사람은 아무도 없습니다 (핫 링크는 일반적으로 눈살을 찌푸리게 됨). 여기에 Google이 언급 한 URL과 이들이 호스팅하는 라이브러리에 대한 자세한 내용은 다음과 같습니다. code.google.com/apis/ajaxlibs/ documentation / index.html
Loftx


1
많은 사용자가 다른 사이트를 방문 할 때 이미 Google 또는 Microsoft에서 jQuery를 다운로드했습니다. 결과적으로 사이트를 방문 할 때 캐시에서로드되므로 로딩 시간이 단축됩니다.
AminM

Microsoft 또는 Google을 사용해서는 안됩니다. MaxCDN을 사용하십시오. 훨씬 더 가능성이 가장 중요한 것은 여기 캐시 히트, 얻을 blog.jquery.com/2014/01/14/...
0fnt

답변:


393

이 때문입니다:

  1. 사용 가능한 병렬 처리가 증가합니다.
    (대부분의 브라우저는 특정 사이트에서 한 번에 3 개 또는 4 개의 파일 만 다운로드합니다.)

  2. 캐시 적중이 발생할 가능성을 높입니다.
    더 많은 사이트가이 방법을 따르면 이미 더 많은 사용자가 파일을 준비하고 있습니다.

  3. 페이로드가 가능한 작게됩니다.
    Google은 파일을 다양한 형식 (예 : GZIP 또는 DEFLATE)으로 사전 압축 할 수 있습니다. 이렇게하면 압축 시간이 길고 압축되지 않기 때문에 다운로드 시간이 매우 짧아집니다.

  4. 서버에서 사용하는 대역폭의 양을 줄입니다.
    (Google은 기본적으로 무료 대역폭을 제공합니다.)

  5. 이를 통해 사용자는 지리적으로 가까운 응답을 얻을 수 있습니다.
    (Google은 전 세계에 서버를 보유하고있어 대기 시간이 더욱 줄어 듭니다.)

  6. (선택 사항) 스크립트를 자동으로 최신 상태로 유지합니다.
    ( "바지 옆에 날아 다니고 싶다면"항상 최신 버전의 스크립트를 사용할 수 있습니다. 보안 문제를 해결할 수는 있지만 일반적으로 문제가 해결 될 수 있습니다.)

10
나는 당신이 점점 더 많은 이유를 계속해서 좋아하는 것을 좋아합니다. 혼자서 +1.
Matchu의

6. Google 서버가 아마도 귀하의 서버보다 빠를 것입니다! 구글뿐만 아니라 누구나 축소 할 수 있기 때문에 포인트 3이 실제로 관련이 있는지 확실하지 않습니다. 훌륭한 답변을
얻으려면

1
jQuery는 이미 축소 버전을 제공하기 때문에 # 3은 아마도 gzip 등과 관련이 있다고 생각합니다.
Matchu의

2
신은 모두 나를 공격하고 있었다, 나는 단지 나의 아이디어를 보냈고, 받아 들였다, LOL
Farshad

1
@ farshad : 당신을 공격하지 않고 다음 답변만큼 좋지 않은 받아 들인 대답을 공격합니다. 이것이 커뮤니티 Q & A가 작동하는 방식입니다. 다음 번에는 좀 더 전문적으로 답변을 형식화하고 질문에 대한 비판을 유용하고 건설적인 종류로 제한하십시오.
Joel

58

Google의 CDN에서 jQuery를 사용 하지 않을 경우 몇 가지 시나리오가 있습니다 .

  1. 웹 서버가 클라이언트와 동일한 네트워크에서 호스팅되는 인트라넷 응용 프로그램을 빌드하는 경우 Google의 CDN jQuery를 사용하는 경우 로컬 네트워크의 웹 서버가 아닌 인터넷에 전화를 겁니다. 이렇게하면 조직의 대역폭이 증가하고 속도가 느려집니다.

  2. 응용 프로그램을 오프라인으로 실행하려는 경우 . (첫 번째 문제와 매우 관련이 있습니다) 개발 환경에서 작업해야하는 경우 (예 : Bower로 관리 ) 인터넷에 연결하지 않고도 (예 : 기차에서) 응용 프로그램을 작동시킬 수 있어야합니다.

  3. 당신이 그것을 사용자 정의해야 할 때 . 예를 들어 Grunt 를 사용하여 특정 모듈 만 사용하거나 AMD 이름을 설정하기 위해 라이브러리를 빌드하는 경우

  4. jQuery가 필요한 SSL을 통해 페이지를 제공 할 때. 보안 문제 및 경고를 피하려면 페이지뿐만 아니라 SSL을 통한 JavaScript도 제공해야합니다.

또한 Microsoft는 CDN에서 jQuery호스팅합니다 . 이는 Google의 호스팅 된 jQuery를 사용하는 것과 비교할 수있는 또 다른 선택입니다.


35
참고로 Google 서버를 사용하여 호스팅되는 자바 스크립트 라이브러리의 SSL 버전을 제공 할 수 있습니다. ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js가 작동합니다.
Aaron Wagner

알아서 반가워, 애런 감사.
랜스 피셔

3
Microsoft에 대해 +1 구글은 얻는 방법 IMO 너무 많은 신용을.
예 배리

7
참고로 : Scheme relative 하이퍼 링크 src="//ajax.googleapis.com/..."는 작동합니다.
John Gietzen

3
또한 cndjs를 고려하십시오
Bryce

29

연구 에 의해 TJ VanToll는 그것이 CDN에서 다른 스크립트가 아닌 부하를 함께 jQuery를 연결하는 더 나은 저를 설득했다.

그 이유는 모바일 장치에서 jQuery를 가져 오는 데 소요되는 대기 시간입니다.

"2012 년에 미국의 모바일 네트워크에서 평균 RTT 시간은 344ms였습니다. 그리고이 344ms는 모든 HTTP 요청 (현재 평균 웹 페이지가 93 개를 만드는 것)뿐만 아니라 모든 DNS 조회 및 TCP 연결에도 적용됩니다 ... 평균 RTT가 향상되고 있지만 현재 네트워크가 물리학에 의해 규정 된 이론적 한계의 작은 요소 내에 있기 때문에 추가 이득은 미미합니다. "

또한 Steve Souders 의이 게시물 을 인용 하여 CDN을 사용하여 캐싱 이점 을 실제로 얻을 수없는 이유를 보여줍니다 .

"CDN 제공 업체, jQuery 버전 및 프로토콜 사용 (http 및 https)의 조각화로 인해 CDN 캐시 적중률이 매우 낮습니다. 외부 도메인에서 다운로드하면 1 개가 아닌 3 개를 수행 할 수 있습니다. 왕복 (DNS 조회, TCP 연결 및 HTTP GET). "


3
HTTP2 및 SPDY의 경우 더 이상 사실이 아닙니다. 현재 Cdnjs.com과 같은 CDN에 모든 외부 리소스를 호스팅 할 수 있으며 모든 파일이 동일한 요청을 사용하여 다운로드됩니다. 기본적으로 연결과 동일합니다.
Ricardo Polo Jaramillo

13

가장 큰 이점은 캐싱입니다. 방문자가 자바 스크립트 라이브러리를로드 한 사이트를 방문한 경우 (예 : Google CDN의 jQuery) 웹 사이트를 방문하면 해당 라이브러리는 이미 해당 사용자의 브라우저 캐시에 있으므로 다시 다운로드 할 필요가 없습니다. . 이론 상으로는 큰 소리로 들립니다.

여기와 다른 곳에서 공유되는 이점은 모두 이론적 인 것입니다. CDN 사용과 예상되는 성능 이점을 제공하는지에 대한 심층 분석이 이루어졌습니다. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits


이 답변은 과소 평가되었습니다. 위의 "pro"답변에 똑같이 유효한 "cons"를 제공합니다.
Thomas Wana

@ user239558 연구의 저자가 실제로 CDN을 사용한 경우 링크가 죽지 않았습니다. ;-) 오류는 다음과 같습니다. [function.require] : 스트림을 열지 못했습니다 : / homepages / 41 / d222999437에 해당 파일 또는 디렉토리가 없습니다. /htdocs/wp-content/themes/prose/functions.php
jplandrain

이 기사는 잘 생각되지 않았습니다. 가장 일반적인 jQuery 라이브러리는 모든 페이지의 약 0.5 %에서 Google CDN에 의해 ​​제공됩니다. 일반적인 브라우징 세션 동안 나는 많은 페이지, 특히 예를 들어 그것을 호스팅하는 사이트와 같은 작은 링크를 방문합니다. 또는 블로그 사이트. 일주일이 지나면 하루에 30 개의 고유 한 사이트를 쉽게 방문 할 수 있습니다. 인터넷이 모든 사용자를 위해 캐시되지는 않지만 인터넷을 광범위하게 사용하는 사람들은 총 1 개 이상의 고유 한 도메인을 방문하기 때문에 거의 항상 인터넷을 캐시하게됩니다.
Aidiakapi 2016 년

8

많은 사람들이 생각하지 않는 jQuery를 Google이 호스팅하지 못하게하는 가장 큰 이유는 중국에있는 경우 다운로드하지 않기 때문입니다. Google CDN이 호스팅하는 다른 많은 스크립트, 글꼴 등과 함께 차단됩니다. 중국인에게 다가 가려면 항상 자신의 서버에서 호스팅되는 폴백을 사용하는 것이 가장 좋습니다. 중국에서 Google APIS 차단


@tmthydvnprt에 동의하지 않습니다. 문제는 의견이 많으므로 대부분의 결함이 시작되는 곳이지만 질문에 대한 대답입니다.
Goodbye StackExchange

1
나는 같은 것을 여기에왔다. 사용자가 중국에 거주하는 경우 Google의 모든 것은 훌륭한 방화벽으로 차단됩니다. 그러나 중국의 많은 사람들이 VPN 서비스를 사용하기 때문에 이것은 아마도 문제가되지 않을 것입니다. 어쨌든 중국 시장을 목표로 삼고 싶지 않을 것입니다.
Justin

0

여기에 "왜 ...해야 하는가"와 "왜 ...

CDN에서 jQuery를로드하려는 경우 Google에 대안 목록을 추가하고 싶습니다.

그러나 요약하자면 기본적으로 전반적인 웹 사이트 / 응용 프로그램 성능을 향상시키고 있습니다.


0

서비스 작업자와 함께 Usign CDN을 사용하면 코드를 업데이트 할 때마다가 아니라 클라이언트 수명주기 동안 CDN을 한 번 다운로드 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.