복붙노트

[JQUERY] 당신은 어디에서 jQuery 라이브러리를 포함합니까? 구글 JSAPI? CDN?

JQUERY

당신은 어디에서 jQuery 라이브러리를 포함합니까? 구글 JSAPI? CDN?

해결법


  1. 1.의심의 여지없이 나는 JQuery와 구글 API 서버에 의해 제공하도록 선택할. 내가 그 이제까지 한 후 변경 한 경우 그러나 나는 그것을 고려할 것, 다른 Google API 년대를 활용하지 않기 때문에 나는 JSAPI 방법에 가지 않았다 ...

    의심의 여지없이 나는 JQuery와 구글 API 서버에 의해 제공하도록 선택할. 내가 그 이제까지 한 후 변경 한 경우 그러나 나는 그것을 고려할 것, 다른 Google API 년대를 활용하지 않기 때문에 나는 JSAPI 방법에 가지 않았다 ...

    첫째 : 구글 API를 서버 대신 내 하나의 서버 위치의 세계에 분산되어 가까이 서버는 일반적으로 방문자에 대한 빠른 응답 시간을 의미한다.

    둘째, 많은 사람들은 방문자가 내 사이트에 올 때 그래서 그들은 이미 자신의 로컬 캐시에 JQuery와 스크립트를 가질 수있다, JQuery와 Google에서 호스팅하도록 선택할. 사전 캐시 된 콘텐츠는 일반적으로 방문자에 대한 빠른로드 시간을 의미한다.

    셋째 : 내 웹 호스팅 회사가 사용하는 대역폭 저를 충전합니다. 방문자가 다른 곳에서 같은 파일을 얻을 수 있다면 사용자 세션 당 18K를 소비하는 것은 의미가 없습니다.

    나는 올바른 스크립트 파일을 제공하고, 온라인 및 사용할 수 구글에 대한 신뢰의 일부를 배치하는 것이 이해합니다. 지금까지 내가 구글을 사용하여 실망하지 않은 것이 이해가되지하게 될 때까지이 구성을 계속합니다.

    한 가지는 가치는 사이트의 보안 및 비보안 페이지의 혼합물이있는 경우 동적으로 표시되는 일반적인 경고를 피하기 위해 구글 소스를 변경할 수 있습니다 ... 지적 할 때 보안 페이지 로딩 안전하지 않은 내용 :

    여기에 내가 무엇을 최대 온이다 :

    <script type="text/javascript">
        document.write([
            "\<script src='",
            ("https:" == document.location.protocol) ? "https://" : "http://",
            "ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>" 
        ].join(''));
    </script>
    

    UPDATE 9/8/2010 - 몇 가지 제안은 HTTP를 제거하고 HTTPS 단순히 다음 구문을 사용하여 코드의 복잡성을 줄이기 위해되었습니다 :

    <script type="text/javascript">
        document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>");
    </script>
    

    당신이 있는지의 jQuery 라이브러리의 최신 주요 버전이로드 된 것을 확인하기를 원한다면 또한 당신은 또한 jQuery를 주 번호를 반영하기 위해 URL을 변경할 수 있습니다 :

    <script type="text/javascript">
        document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'>\<\/script>");
    </script>
    

    당신이 구글을 사용하지 않고 jQuery를 사용하면 다음과 같은 소스 경로를 사용할 수 있습니다 선호하는 경우 마지막으로, (jQuery를가 SSL 연결을 지원하지 않는다는 것을 명심) :

    <script type="text/javascript">
        document.write("\<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'>\<\/script>");
    </script>
    

  2. 2.외부 서버에 호스트 할 수 있습니다 이유 중 하나는 특정 서버에 concurent 연결의 브라우저의 한계를 해결할 것입니다.

    외부 서버에 호스트 할 수 있습니다 이유 중 하나는 특정 서버에 concurent 연결의 브라우저의 한계를 해결할 것입니다.

    그러나 가능성이 매우 자주 변경되지 않습니다 사용하고있는 jQuery를 파일, 브라우저 캐시에 걷어차 고 대부분의 경우 그 시점의 논쟁을 만들 것입니다 주어진.

    외부 서버에 호스트 그것에 두 번째 이유는 자신의 서버에 트래픽을 절감하는 것입니다.

    하지만, jQuery를의 크기 주어진 기회는 트래픽의 작은 부분이 될 것입니다. 당신은 아마 실제 콘텐츠를 최적화하기 위해 시도해야합니다.


  3. 3.jQuery를 1.3.1 분은 18K의 크기이다. 나는 초기 페이지로드에 물어 너무 많이 히트 있다고 생각하지 않습니다. 그것은 그 후 캐시됩니다. 그 결과, 내가 직접 호스팅합니다.

    jQuery를 1.3.1 분은 18K의 크기이다. 나는 초기 페이지로드에 물어 너무 많이 히트 있다고 생각하지 않습니다. 그것은 그 후 캐시됩니다. 그 결과, 내가 직접 호스팅합니다.


  4. 4.당신이 구글을 사용하고자하는 경우, 직접 링크는 더 반응 할 수있다. 각 라이브러리는 직접 파일에 대해 나열된 경로를 가지고있다. 이것은 jQuery를 경로입니다

    당신이 구글을 사용하고자하는 경우, 직접 링크는 더 반응 할 수있다. 각 라이브러리는 직접 파일에 대해 나열된 경로를 가지고있다. 이것은 jQuery를 경로입니다

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
    

    그냥 질문을 다시 읽어, 당신은 HTTPS를 사용하는 이유가 있나요? 이것은 그들의 예에서 스크립트 태그 구글 목록입니다

    <script src="http://www.google.com/jsapi"></script>
    

  5. 5.나는 외부 사이트에 의존하는 개발 한 공개 사이트를 싶지 않을 것이다, 따라서, 나는 jQuery를 나 자신을 호스팅 할 것입니다.

    나는 외부 사이트에 의존하는 개발 한 공개 사이트를 싶지 않을 것이다, 따라서, 나는 jQuery를 나 자신을 호스팅 할 것입니다.

    당신은 다른 (구글, jquery.com 등)가 다운 될 때 귀하의 사이트에 정전이 기꺼이? 적은 의존성가 핵심이다.


  6. 6.장점 : 구글의 호스트는 장점이 있습니다

    장점 : 구글의 호스트는 장점이 있습니다

    단점 :

    당신이 당신의 서버에서 부재의 하중을 몇 가지 글로벌 변수의 존재를 확인하거나 somesuch, 그리고이라면 구글에서 포함 할 수 있을까?


  7. 7.여기에 몇 가지 문제가 있습니다. 첫째, 비동기로드 방법을 사용하면 지정된 :

    여기에 몇 가지 문제가 있습니다. 첫째, 비동기로드 방법을 사용하면 지정된 :

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load('jquery', '1.3.1');
      google.setOnLoadCallback(function() {
        // do stuff
      });
    </script>
    

    문제의 몇 가지가 있습니다. (필요한 경우)가 검색하는 동안 스크립트 태그는 페이지로드를 일시 중지합니다. 이제 그들은이 나쁜로드 느려하지만, jQuery를이 작은 경우. 위의 방법으로 진짜 문제는 jquery.js 부하가 많은 페이지에 대해 독립적으로 발생하기 때문에, 그들은 로딩을 완료하고 당신이 할 스타일링 어떤 JQuery와 사용자에 대한 눈에 보이는 변화 할 수 있도록 JQuery와로드되기 전에 렌더링이다.

    다른 방법은 다음과 같습니다

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
    

    같은 몇 가지 간단한 예를 시도 간단한 테이블을 가지고 있고 정적 jquery.min.js 부하 () .ready $ (문서)를 대 setOnLoadCallback () 메소드를 노란색으로 세포의 배경을 변경합니다. 두 번째 방법은 눈에 띄는 깜박임이 없습니다. 첫 번째 것입니다. 개인적으로 나는 그 좋은 사용자 경험하지 생각합니다.

    예를 들어이 실행 :

    <html>
    <head>
      <title>Layout</title>
      <style type="text/css">
        .odd { background-color: yellow; }
      </style>
    </head>
    <body>
    <table>
      <tr><th>One</th><th>Two</th></tr>
      <tr><td>Three</td><td>Four</td></tr>
      <tr><td>Five</td><td>Six</td></tr>
      <tr><td>Seven</td><td>Nine</td></tr>
      <tr><td>Nine</td><td>Ten</td></tr>
    </table> 
    <script src="http://www.google.com/jsapi"></script>
    <script>
      google.load("jquery", "1.3.1");
      google.setOnLoadCallback(function() {
        $(function() {
          $("tr:odd").addClass("odd");
        });
      });
    </script>
    </body>
    </html>
    

    당신은 테이블이 나타납니다 다음 행이 노란색 갈 참조 (해야한다).

    google.load가 () 메소드와 두 번째 문제는 그것이 단지 파일의 제한된 범위를 호스트이다. 가 매우 플러그인에 의존하기 때문에이 JQuery와에 대한 문제입니다. 당신이 시도하고 포함하는 경우 JQuery와 플러그인과 <스크립트 SRC = "..."> 태그와 google.load가 ()가 아직로드되지 않았기 때문에 플러그인이 아마 "jQuery를 정의되지 않은"의 메시지와 함께 실패합니다 . 난 정말이 주위에 방법이 표시되지 않습니다.

    (어느 방법) 세 번째 문제점은 하나의 외부 부하 점이다. 당신이 당신의 자바 스크립트를로드하는 두 개의 외부 요청 최소까지있어 몇 가지 플러그인과 자신의 자바 스크립트 코드가 가정. 당신은 아마 더 나은 JQuery와 관련된 모든 플러그인과 자신의 코드를 얻는 하나 개의 축소 된 파일로 넣어 길 이죠.

    호스팅해야 당신이 사용 구글의 아약스 라이브러리의 API에서?

    마지막으로 당신은 XSS 시도의 일종으로 요청을 신고 편집증 브라우저의 잠재적 인 문제가있다. 그것은 일반적으로 기본 설정되지만 사용자가 그들이 당신에 문제가있을 수 있습니다 만 보안 설정을하게 사용하는 브라우저를 제어 할 수 없습니다 기업 네트워크에 문제가되지 않습니다.

    그래서 결국 나는 정말 많은 여기에 포스트 예를 제외하고 (더 "완벽한"API를 어떤면에서는 다른 이야기이다) 적어도 jQuery를위한 구글 AJAX API를 사용하여 저를 볼 수 없습니다.


  8. 8.자신의 서버에 호스팅하는 조언을 사람들뿐만 아니라, 나는 브라우저가 다른 콘텐츠 스레드에서 별도의에로드 할 수 있도록 별도의 도메인 (예를 들어 static.website.com)에 그것을 유지하기 위해 제안 된 것입니다. 이 팁은 모든 정적 물건 작동, 이미지와 CSS를 말한다.

    자신의 서버에 호스팅하는 조언을 사람들뿐만 아니라, 나는 브라우저가 다른 콘텐츠 스레드에서 별도의에로드 할 수 있도록 별도의 도메인 (예를 들어 static.website.com)에 그것을 유지하기 위해 제안 된 것입니다. 이 팁은 모든 정적 물건 작동, 이미지와 CSS를 말한다.


  9. 9.나는 투표가 -1 라이브러리를 구글에서 호스팅을 위해. 그들은 이러한 라이브러리 주위에 자신의 래퍼로, 분석 스타일 구글, 데이터를 수집하고 있습니다. 내가 페이지에 다른 훨씬 적은 아무것도 할 그것을 부탁 해요보다 최소한 나는 클라이언트 브라우저는 더하고 싶지 않아요. 더 사용 데이터를 수집하기 위해 눈에 거슬리지 자바 스크립트를 사용하여 - 더 나쁜, 이것은 악의없는 구글의 "새 버전"입니다.

    나는 투표가 -1 라이브러리를 구글에서 호스팅을 위해. 그들은 이러한 라이브러리 주위에 자신의 래퍼로, 분석 스타일 구글, 데이터를 수집하고 있습니다. 내가 페이지에 다른 훨씬 적은 아무것도 할 그것을 부탁 해요보다 최소한 나는 클라이언트 브라우저는 더하고 싶지 않아요. 더 사용 데이터를 수집하기 위해 눈에 거슬리지 자바 스크립트를 사용하여 - 더 나쁜, 이것은 악의없는 구글의 "새 버전"입니다.

    참고 : 슈퍼, 이러한 행위를 변경 한 경우. 하지만 자신의 호스팅 라이브러리를 사용하여 고려 마지막으로, 나는 내 사이트에 아웃 바운드 HTTP 트래픽을 모니터링 및 서버를 구글에게주기적인 호출은 내가 볼 것으로 예상 뭔가하지 않았다.


  10. 10.나는 이것에 대해 구식이 될 수도 있지만, 난 여전히 핫 링크에 눈살을 찌푸린 다. 어쩌면 구글은 예외이지만, 일반적으로, 당신의 자신의 서버에있는 파일을 호스트하는 정말 좋은 매너입니다.

    나는 이것에 대해 구식이 될 수도 있지만, 난 여전히 핫 링크에 눈살을 찌푸린 다. 어쩌면 구글은 예외이지만, 일반적으로, 당신의 자신의 서버에있는 파일을 호스트하는 정말 좋은 매너입니다.


  11. 11.나는 로컬로이 파일을 호스팅하는 이유로이 추가됩니다.

    나는 로컬로이 파일을 호스팅하는 이유로이 추가됩니다.

    최근 TWC 남부 캘리포니아에있는 노드는 그래서 우리는 외부 파일을 받고되지 않습니다 (IPv4를 가진 사용자 용) ajax.googleapis.com 도메인을 확인할 수 없었다. 어제 (지금은들이 지속적인입니다.) 때까지 간헐적까지있다가 간헐적 이었기 때문에, 나는 SaaS는 사용자 문제를 해결하는 문제의 톤을 가지고 있었다. 일부 사용자는 소프트웨어와 함께 어떤 문제가되지 않았다, 다른 사람들이 탱킹 이유를 추적하려고 많은 시간을 보냈다. 평소 디버깅 과정에서 나는 그들이 IPv6를 해제 한 경우 사용자가 요청하는 습관 아니에요.

    나 자신이 파일이 특정 "경로"를 사용하고 또한 IPv4 만 사용하고 있기 때문에이 문제에 비틀 거렸다. 나는 JQuery와 실제 문제를 찾아 ... 다음 traceroutes 등 일을 시작,로드 아니었다 개발자 도구를 말해 함께 문제를 발견했다.

    구글이 동안 중단하지 않는 문제가되기 위해, 그리고 ... 이러한 노드 중 하나가 DNS 하이재킹으로 손상 될 수 있으며, 악성 JS을 제공 :이 후, 가장 가능성이 있기 때문에 외부에서 호스팅 파일로 돌아 가지 않을 것 대신 실제 파일의. 항상 지금은 사용자 사이의 모든 노드를 알고 호스트가이 점을 실패 할 수있다, 나는 구글 도메인이 내려 가지 않을 것입니다 점에서 안전하다고 생각했다.


  12. 12.http://code.jquery.com/jquery-latest.pack.js 그것은 내 요구에 맞는 내가 업데이트에 대해 걱정할 필요가 없습니다 : 난 그냥 jQuery를 사이트에서 최신 버전이 포함되어 있습니다.

    http://code.jquery.com/jquery-latest.pack.js 그것은 내 요구에 맞는 내가 업데이트에 대해 걱정할 필요가 없습니다 : 난 그냥 jQuery를 사이트에서 최신 버전이 포함되어 있습니다.

    편집 : 주요 웹 응용 프로그램의 경우, 확실히 그것을 제어; 다운로드하여 스스로를 제공하고 있습니다. 하지만 내 개인 사이트에 대해 전혀 관심이 없다. 마술 사라지지 않는 것들, 그들은 일반적으로 첫째되지 않습니다. 나는 충분히 미래의 릴리스에 대한 변경을 알고 그것으로 유지.


  13. 13.몇 가지 유용한 자원을 여기에 희망은 당신이 당신의 CDN을 선택하는 데 도움이 될 수 있습니다. MS는 최근 자신의 CDN을 통해 전달 라이브러리를위한 새로운 도메인을 추가했다.

    몇 가지 유용한 자원을 여기에 희망은 당신이 당신의 CDN을 선택하는 데 도움이 될 수 있습니다. MS는 최근 자신의 CDN을 통해 전달 라이브러리를위한 새로운 도메인을 추가했다.

    이전 형식 : http://ajax.microsoft.com/ajax/jQuery/jquery-1.5.1.js 새로운 형식 : http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.js

    이 microsoft.com에 대한 모든 쿠키를 전송해서는 안된다. http://www.asp.net/ajaxlibrary/cdn.ashx#Using_jQuery_from_the_CDN_11

    여기에 가장 인기있는 기술에 대한 통계는 모든 기술에서 웹에 사용. http://trends.builtwith.com/

    희망은 당신이 선택하는 데 도움이 될 수 있습니다.


  14. 14.나는 '라이브'사이트에 대한 책임이있는 경우 더 나은 것입니다 그 모든 것을 알고 있어야 에 내 사이트에. 동일한 서버 또는 정적 / 외부 서버하지만 어느 쪽이든 확인 한 후 I (또는 내 프로그램 / 프록시) 라이브러리를 업데이트 할 수 있습니다 만 위치에 JQuery와 분 버전 자신 중 하나를 그 이유 I 호스트를 들어 / 모든 변경을 테스트

    나는 '라이브'사이트에 대한 책임이있는 경우 더 나은 것입니다 그 모든 것을 알고 있어야 에 내 사이트에. 동일한 서버 또는 정적 / 외부 서버하지만 어느 쪽이든 확인 한 후 I (또는 내 프로그램 / 프록시) 라이브러리를 업데이트 할 수 있습니다 만 위치에 JQuery와 분 버전 자신 중 하나를 그 이유 I 호스트를 들어 / 모든 변경을 테스트


  15. 15.머리에 :

    머리에 :

      (function() {
        var jsapi = document.createElement('script'); jsapi.type = 'text/javascript'; jsapi.async = true;
        jsapi.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.google.com/jsapi?key=YOUR KEY';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('head')[0]).appendChild(jsapi);
      })();
    

    몸의 끝 :

    <script type="text/javascript">
    google.load("jquery", "version");
    </script>
    

  16. 16.나는 내 자신의 서버 내 다른 JS 파일로 호스트하고, 그 시점의 그, ​​결합을 축소하세요 (여기 장고 - compresser와 함께,하지만 요점은 그게 아니다) 모든 사이트로, 하나의 js 파일로 제공 할 수 요구는 그것으로 넣어. 좀 더 KBS가 더 많은 요청이 만들어 질 것보다 훨씬 더 이전에 저렴 - 내가 너무 거기 바이트 추가 jQuery를 추가하지 이유를 볼 수 있도록, 어쨌든 자신의 js 파일을 제공해야합니다. 당신은 누구에게도 의존하지 않는, 그리고 축소 된 JS가 캐시 자마자, 당신은 빨리도 최고입니다.

    나는 내 자신의 서버 내 다른 JS 파일로 호스트하고, 그 시점의 그, ​​결합을 축소하세요 (여기 장고 - compresser와 함께,하지만 요점은 그게 아니다) 모든 사이트로, 하나의 js 파일로 제공 할 수 요구는 그것으로 넣어. 좀 더 KBS가 더 많은 요청이 만들어 질 것보다 훨씬 더 이전에 저렴 - 내가 너무 거기 바이트 추가 jQuery를 추가하지 이유를 볼 수 있도록, 어쨌든 자신의 js 파일을 제공해야합니다. 당신은 누구에게도 의존하지 않는, 그리고 축소 된 JS가 캐시 자마자, 당신은 빨리도 최고입니다.

    당신이 (추가 요청하지 않고 있지만,) 자신의 서버에서 추가 JQuery와 킬로바이트를로드해야하기 때문에 첫 번째로드에, CDN 기반 솔루션은 이길 수 있습니다. 나는 차이가 있지만, 눈에 띄는 의심. 그리고, 삭제 캐시와 첫 번째로드에서 자신의 호스팅 솔루션은 아마 항상 훨씬 더 빨리, 때문에 필요 이상의 요청 (및 DNS 조회)의의 CDN의 jQuery를 가져올 수있을 것입니다.

    나는이 점은 거의 언급되지 않습니다 궁금해, 어떻게 CDN 서비스는 세계를 정복하는 것 :)

  17. from https://stackoverflow.com/questions/547384/where-do-you-include-the-jquery-library-from-google-jsapi-cdn by cc-by-sa and MIT license