source

이점 vs.로컬에서 jQuery를 호스팅하는 것의 함정

ittop 2023. 10. 24. 21:31
반응형

이점 vs.로컬에서 jQuery를 호스팅하는 것의 함정

및 jQueryUI(및를 꺼내고 CDN 에서 jQuery jQueryUI( jQueryUI CSS) 를 할 수 . 이것은 내가 전화할 수 있기 때문에 좋습니다.google.load("jquery", "1");
그리고 최신의 jQuery 1.x.x가 사용될 것입니다.

이제 저는 보안 때문에 도서관들을 현지로 이동시킬 것입니다.

현지에서 작업을 진행하게 되어 기쁘지만 주의해야 할 다른 이점과 함정은 무엇인지 궁금합니다.

저는 항상 구글의 CDN(Content Delivery Network)을 사용합니다.하지만 오프라인일 경우를 대비해서:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>!window.jQuery && document.write('<script src="jquery-1.4.2.min.js"><\/script>')</script>

Google CDN의 jQuery를 잡고 필요한 경우 로컬로 이동합니다.

편집: IE6를 지원할 필요가 없고 사이트에 부분적인 https 사용이 있는 경우 http를 제거할 수 있습니다.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

CDN에 파일을 저장하는 것의 가장 큰 이점은 파일을 자신의 웹 사이트에서 다운로드한 파일과 병렬로 다운로드할 수 있다는 것입니다.이렇게 하면 모든 페이지에서 대기 시간이 줄어듭니다.따라서 로컬 호스팅의 단점인 지연 시간 증가가 있습니다.그 주된 이유는 브라우저가 동일한 웹 도메인에 동시에 연결할 수 있는 수가 제한되기 때문입니다.IE6에서 이는 IE의 열려 있는 모든에 공유되는 동일한 도메인에 대한 2개의 동시 연결로 기본 설정되었습니다.IE8+에서는 FF/Chrome과 일치하는 6으로 기본값이 향상되었지만, 그래도 이미지가 많고 스프라이트를 사용하지 않으면 지연 시간이 많이 발생합니다.

저는 CDN을 사용하여 최신 라이브러리 버전을 얻기 보다는 항상 명시적으로 라이브러리 버전을 설정했습니다.이렇게 하면 새 버전이 코드를 손상시킬 위험이 줄어듭니다.jQuery와는 가능성이 낮지만 가능합니다.

CDN 사용의 또 다른 주요 이점은 사이트의 트래픽 감소입니다.GB당 비용을 지불하거나 리소스가 제한된 가상 서버에 있는 경우 일부 콘텐츠를 공용 CDN에 저장하면 전체 사이트 성능이 향상되고 호스팅 비용이 절감될 수 있습니다.

@Xaver의 이 질문에 대한 다른 답변도 꼭 읽어보시기 바랍니다.이것은 아주 좋은 속임수입니다.

다른 사람들은 그 혜택을 감당했습니다.함정:

  • 자신의 서버에 있는 콘텐츠만 포함한다면 방화벽 등에 의해 차단되지 않고 실행해야 하는 서버가 하나입니다.타사에서 스크립트를 가져오면 사이트가 작동하려면 두 개의 서버를 실행하고 차단을 해제해야 합니다.

  • 끌어다 놓는 사이트<script>에서 사이트에서 사용자의 경험을 완전히 제어할 수 있습니다.만약 Google이 악의를 느낀다면, 사용자의 키 누름을 기록하기 위해 jQuery 복사본에 무언가를 넣을 수 있고, 웹 추적 데이터베이스에 연결하기 위해 사용자가 입력한 페이지에서 개인 정보를 훔칠 수 있으며, "I love Google!"이라는 댓글을 모든 양식에 게시하도록 만들 수 있습니다.

구글은 아마도 실제로 그렇게 하지는 않겠지만, 그것은 당신이 통제할 수 없는 요소이며, 다른 스크립트 호스팅 서비스에서는 확실히 걱정해야 할 요소입니다.이전에도 통계 스크립트가 멀웨어 로더와 손상된 경우가 있었습니다.

사이트의 한 페이지에라도 제3자의 스크립트를 포함시키기 전에 해당 호스트 이름(웹 대면 관리 기능 포함)에 사용자가 액세스할 수 있는 모든 기능이 표시되어 있는 스크립트를 100% 신뢰해야 합니다.

Google CDN:

  • 성능에 적합한 캐싱, 더 많은 사용자가 이미 캐싱을 보유하고 있을 가능성, 그리고 병렬로 다운로드할 수 있습니다.
  • 만약 있다면, cdn이 내려가는 것을 금지합니다.당신은 망했습니다.
  • 만약 새로운 버전이 당신의 기존 플러그인이나 사이트를 파괴한다면, 당신은 그것에 대해 너무 늦게 알게 될 것입니다.

로컬:

  • 네트워크에 연결되지 않고 개발이 가능합니다.
  • 최소화 외에도 gzip을 통해 성능상의 이점을 얻을 수 있습니다.

그들이 제공할 것에 대한 통제권이 없기 때문에, 저는 제 로컬 버전을 사용하는 것을 선호합니다.예를 들어, 저는 사용자들이 구글 분석이나 그와 유사한 것에 영향을 받지 않기를 바랍니다. 왜냐하면 이것은 우리나라의 법적 문제이기 때문입니다.

이점: (Google CDN의 경우에 한함)

  1. 파일과 병행하여 다운로드합니다.다른 답변에서는 이 문제를 더 자세히 설명합니다.
  2. Google의 서버는 물리적으로 컨텐츠를 더 빠르게 제공할 수 있습니다.
  3. CDN의 HTTP 캐시가 모든 사이트에 걸쳐 범용이므로 공통 라이브러리와 프레임워크가 이미 사용자의 시스템에 있을 수 있습니다.
  4. 대용량 라이브러리 파일을 제공하는 데 대역폭을 사용할 필요가 없습니다.

거의 모든 면에서 볼 때 구글의 CDN을 사용하는 것은 좋은 일입니다.

성능이 상당히 향상될 것이며(비록 사이트가 실제로 사용 중인 경우가 아니라면), 서버에서 전송해야 하는 데이터의 양이 감소할 것입니다(jQuery가 다운로드하기에 큰 문제는 아니지만).

당신이 구글을 신뢰하지 않을 때 사용하고 싶지 않은 유일한 이유입니다.이를 사용하면 Google에 사이트의 트래픽 프로파일에 대한 추가 정보 창을 제공할 수 있습니다. 여기에는 공개하지 않을 수도 있는 URL에 대한 정보도 포함됩니다(예: 사이트의 보안 영역).

보안에 대해 편집증적이라면 이 방법으로 사용하지 않도록 설득하기에 충분할 수도 있지만(결국 직접 호스팅한다고 해서 사이트가 완전히 느려지는 것은 아닙니다), 일반적으로 대부분의 사람들은 Google이 자신의 사이트에 대해 이미 충분히 알고 있으므로 이 방법을 추가해도 큰 차이가 없을 것이라는 실용적인 견해를 가질 것입니다.

저는 요즘 소수일 것입니다만, 꼭 필요한 경우가 아니라면 CDN을 사용하고 싶지 않다고 말씀드리고 싶습니다.사용을 시작하는 핵심 요소는 다음과 같습니다.

  • 지역을 넘나드는 사용자.미국에서 웹사이트를 호스팅하지만 눈에 보이는 유럽 사용자 수가 있는 경우 CDN을 사용하면 로딩 시간이 단축됩니다.
  • 많은 수의 사용자 및/또는 대용량 컨텐츠로 인해 메인 서버 하나로는 더 이상 충분하지 않습니다.여러분은 포르노 비디오 웹사이트를 생각할 수 있습니다.비디오 스트림은 부하가 많이 걸려 CDN은 메인 서버의 부하가 훨씬 적을 것입니다.

하지만 중요한 것은 이런 점들이 전세계 90%의 웹사이트에는 적용되지 않는다는 겁니다.전 세계적으로 수백만 명의 온라인 사용자를 보유한 Facebook이 아니고, 매초 수백 GB가 전송되는 Pornhub도 아닙니다.

귀하의 웹사이트가 귀하의 도시/국가에 있는 사용자를 대상으로 하고 있고 서버 한 대의 용량이 귀하가 보유한 사용자 수에 충분하다면 CDN을 원하는 이유는 무엇입니까?도시에 있는 사용자는 더 빠르고, 로컬에서 메인 서버에서 모든 것을 가져오는 것이 더 간단합니다.


It was more about CDNs in general, now let me be closer to the actual question about jQuery or any other library.

If you want your website to stay accessible and working without maintenance for more than a year, let's say - put it locally. Libraries nowadays are being updated in a crazy tempo which you probably don't want to follow. And old versions are being deleted eventually. Moreover, the whole library can die (probably not applicable to jQuery though).

From my recent experience - I updated TinyMCE on the website I maintain from 3.x.x (dated 2012) to 5.x.x (dated Spring 2019). This website was working for 7(seven!) years without any maintenance in this part of the logic. There was no "minifying" concept back then and CDNs were not as common as now. But even if they would be common - you never know what will happen in 3-5-10 years from now. Usually you want your website to stay alive even without you maintaining it, don't you? However if you pull jQuery from CDN today, then this link may (and, probably, will) break in 5 years.

Solution with CDN AND fallback to local version as @Xaver suggested can be a good compromise. But... maybe just get rid of CDN link? ;)

To me it really depends on how much control you desire to have. If you are like me and need to develop on local host when working and traveling. Having the jquery files local is better than having it hosted on google or else where.

ReferenceURL : https://stackoverflow.com/questions/3832446/benefits-vs-pitfalls-of-hosting-jquery-locally

반응형