2010-04-28 1 views
3

큰 자바 스크립트 라이브러리 (예 : jquery UI)를 사용하는 레일 응용 프로그램에서 작업하고 있으며, 내 자신의 자바 스크립트 파일이 몇 개 있습니다. 나는 내 자신의 자바 스크립트를 포장하기 위해 asset packager을 사용하고있다. 패키징 및 자산 패키저를 사용하여 내 자바 스크립트 파일을 제공 별도로 http://code.google.com/apis/ajaxlibs/documentation/#jquery에 설명하고, 구글 코드에서 jQuery를 라이브러리에js 라이브러리 제공 : Google 코드 또는 자산 패키저를 사용하면 성능이 향상됩니까?

  1. 링크 : 나는이 파일을 제공하는 두 가지 방법을 고려하고있다.

  2. jquery 라이브러리를 직접 호스팅하고 하나의 큰 병합 된 javascript 파일로 내 자신의 자바 스크립트와 함께 패키지화하십시오.

물론 내 호스팅 솔루션은 Google의 콘텐츠 전송 네트워크를 이기지 않을 것이므로, 처음에는 최종 사용자가 옵션 # 1을 통해 페이지로드가 더 빠르다고 생각했습니다.

그러나 내가 직접 제공하는 경우 병합 된 자바 스크립트 (병합 된 자바 스크립트와 Google이 제공하는 라이브러리의 반대)와는 달리 하나의 요청 만 보내면됩니다.

것은 어떤 방식 최상의 최종 사용자 경험을 제공 할 것입니다 (아마도 더 빠른로드 시간의 형태를?)

+0

(그리고 내가 고려해야 할 다른 옵션이 있다면 나는 그 사람들에게도 개방되어있다!) – brahn

답변

4

"의존적"이지만 대부분의 경우 옵션 # 1 (Google 호스팅)으로 인터넷 연결 사이트로 이동합니다. 인트라넷의 경우 여러 가지 이유로 내부적으로 모든 것을 호스팅 할 수 있지만 문제는 귀하의 질문 범위를 벗어납니다.

전체 고려해야 할 몇 가지가있다 : 올바르게 캐시 된 경우

  • 사용자가 새로 고침을 제외하고 파일을 다운로드하지 않습니다.
  • Google보다 많은 서버가 있습니다 :) 요청이 많을수록 위치가 매우 다양해지기 때문에 단일 또는 소수의 위치에서 호스팅하는 것으로 추측됩니다.
  • 브라우저는 순차적으로 스크립트를 실행하더라도 다운로드를 병렬 처리하므로 동시에 사용자와 Google에서 다운로드하여 처리량이 증가합니다.
  • 기타 사이트는 jQuery 호스팅에 google을 사용합니다 (사용자가 현재 사용중인 경우). 사용자가 요청한 경우에는 요청이 없었 음을 의미하는 파일이 이미 캐시되어 있습니다.
당신은 하나 개의 파일에 모든 파일을 호스팅 할 수 있지만, 당신이 가진 몇 가지의 무게를 고려해야 할

:

  • 하나 개의 파일이 될 것 것이 얼마나 큰는 사용자가 필요로 할 스크립트에서 뭔가를 변경했을 때 전체를 다시 다운로드 하시겠습니까?
  • 여러 요청 (및 DNS 조회)이 해당 파일의 다운로드 시간보다 저렴합니까?
  • 대역폭을 지불 하시겠습니까? :

코드의 비율을 사용자 정의하고 프레임 워크가 얼마에 따라 구글의 CDN은 봉사하고 다른 일을 사용할 수를 떠나, 서버 떨어져 당신의 JS 정적 트래픽의 상당 부분을 취할 수 (큰 트래픽 사이트에 큰), 스크립트를 변경하면 (새 프레임 워크 릴리스보다 훨씬 더 일반적 임) ... 클라이언트는 전체 프레임 워크가 아닌 해당 프레임 만 다운로드합니다.

4

구글의 좋은 점은 그것이 많은 웹 사이트에서 사용되기 때문에, 기회가 있다는 것입니다 사용자가 것이다 이미 Google JS 라이브러리를 사용하는 사이트를 보았습니다.이 경우 해당 사이트는 이미 컴퓨터에 캐시되어있어 파일을 전혀 다운로드 할 필요가 없습니다.

개인적으로 파일을 결합하여 내 서버에서로드하는 대신 (google.load()을 통해) Google을 사용하는 것이 좋습니다. (또한 Google의 로더를 사용하여 파일을 지연로드 할 수 있으며 모든 라이브러리를로드하고 그 중 하나만 사용하는 대신 필요한 경우에만로드합니다.)

0

대역폭 및 다운로드 속도에 대한 실질적인 문제 외에도 개인 정보 보호 정책 및 요구 사항에 따라 잠재적으로 법적 또는 적어도 도덕적 인 문제가 있습니다.

<

Google의 (또는 누군가를 elses) CDN을 사용 tinfoilbeanie >는 리퍼러 헤더는 페이지의 주소뿐만 아니라 추적 쿠키를 포함하는 함께 전달됩니다. 와! Google은 이제 js를 다운로드 할 때 사용자가보고 있던 사이트를 알고 있습니다. 브라우저 캐싱에 의해 다소 완화되었습니다. 이미 가지고 계신 것처럼 캐시를 다시 다운로드하지 않고 공격적인 캐시 컨트롤을 사용합니다.

그러나 타사와 추적 정보를 공유하지 않는다는 개인 정보 취급 방침을 게시 한 경우 은 이제 사용자에게 거짓말을하고 있습니다. 정부 웹 사이트를 개발 중이므로 과 같은 개인 정보 보호 요구 사항을 포함해야하는 경우 이제 법률을 위반하게됩니다.

</tinfoilbeanie >

그것은 당신에게 큰 문제가 될 수 있지만 귀하의 개인 정보 보호 정책 요구 사항을 확인하지 않을 수 있으므로 정확한 같은 일이 등 광고 네트워크, 오프 사이트 이미지와 함께 발생합니다. 구글의 구체적인 사례를 들어

, 그들은 명시 적으로 terms of service for googleapis에 주 :

... 고유하게 식별 가능한 추적 쿠키가 사용자 컴퓨터에 저장되는 것을 포함합니다. 심지어 StackOverflow의의 개인 정보 보호 정책은 결코 사이트에 포함 된 일반적인 QuantServe 추적 이미지가 있다고 구글은 그들이 당신 자신의 사이트를 방문한 것으로 알려 ping을받을 수 있음을 언급하지 않으며,


참고. "우리"가이 작업을 수행한다고 언급하지만, 아마도 "우리"는 QuantServe 또는 Google을 포함시키려는 것이 아닙니다.프라이버시는 털이 많은 것이 될 수 있습니다.

+0

그래서 처음부터 구글의 트래픽이 대다수라는 것을 알기 때문에 다른 예제를 사용했다. 인수 :) –

관련 문제