브라우저 설치에 JQuery 및 이와 유사한 도구를 내장 할 수 있습니까?


19

JQuery와 CDN에 대한 또 다른 질문을 읽은 후 JQuery와 같은 도구가 브라우저와 함께 제공되므로 CDN 또는 자체 호스트 서버에서 처음 다운로드 할 필요성을 줄이거 나 없앨 수 있습니까?

JQuery 파일은 특히 작기 때문에 브라우저 설치의 일부로 다양한 버전을 쉽게 가질 수 있습니다. 이제 공정하게, 이것은 설치 공간, 브라우저 자체의 다운로드 시간을 증가시킵니다.

그런 다음 사이트는 웹 사이트 서버 자체에서 다운로드하도록 기본 설정하기 전에 CDN (캐시 후) 전에 "로컬"을 먼저 확인할 수 있습니다.

이것이 가능하다면, 그렇지 않은가? 왜 그렇지 않은가?


3
특정 JavaScript 함수가 어디에서나 사용될 수있어 어디에서나 필요한 것으로 보이면 언어에 추가됩니다. Array.prototype.forEach, Array.prototype.indexOf, Object.create자바 스크립트 엔진 자체에 번들있어 코드의 예이다.
zzzzBov

크롬은 최종 사용자에게 사이트가 처음 렌더링 될 때 필요한 jQuery / 자바 스크립트 파일을 캐시 할 수있는 기능을 가진 확장 프로그램을 설치하는 옵션을 제공하는 솔루션을 제공 할 것이라고 확신합니까? 사용자가 거부하면 평소대로 요청을 강제합니다. "다시 묻지 않음"옵션은이 옵션을 비활성화 할 수 있습니다. 최종 사용자가 간단한 확인란 목록을 사용하여 브라우저 캐시에 저장할 js 파일을 선택할 수있는 설정 영역이있을 수 있습니다. 클라이언트에 항상 사용자 정의 js가 전송되지만 요청마다 클라이언트로 전송되는 js 파일을 제거하면 p
yardpenalty가

1
어떤 버전을 포함 시키시겠습니까? 다음주는 어떻습니까?
pdr

@ pdr-오래된 질문,이 작업에 대한 부정적인 대답이 많이 있습니다. 그러나 최신 버전을 브라우저 릴리스와 쉽게 번들로 묶을 수 있으며 필요한 경우 사용자 코드가 CDN에서 최신 버전을 요청할 수 있습니다. JQuery 2.0과 같은 주요 변경 사항을 통해 코드를 선택할 수 있습니다. 정말로 모든 묵음 점 :)
ozz

답변:


15

그들이 할 수 없었던 기술적 이유는 없습니다. 그러나 반드시 필요한 것은 아니며 웹의 기본 철학에 위배됩니다. 머지 않아 머지 않아 헤더가 만료되어 거의 같은 것을 달성 할 수 있기 때문에 필요하지 않습니다. 웹 철학에 위배됩니다. 라이브러리가 브라우저와 번들로 묶여서는 안되는 하향식 중앙 집중식 권한이 있기 때문입니다.

편집 : JS 라이브러리는 주로 DOM을 쉽게 다루기 위해 존재합니다. 브라우저에 타사 라이브러리를 번들로 묶는 것이 DOM API를 더 즐겁게 만드는 올바른 방법이라고 생각하지 않습니다.


1
고마워 댄-당신이 설명하는 것을 읽을 수있는 링크가 있습니까?
ozz

1
필자는 페이지를 요청할 때마다 메가 바이트의 공용 라이브러리에 메가 바이트를 다운로드해야한다고 웹 페이지를 작고 액세스 가능하게 유지하는 또 다른 기본 웹 철학에 위배된다고 주장합니다. 많은 사람들이 여전히 모뎀과 느린 위성 연결 상태에 있습니다.
maple_shaft

4
근관 수술은 DOM API를 더욱 즐겁게 만들어 줄 것입니다.
Donal Fellows

1
@maple_shaft, 그것은 다소 특이한 주장입니다. 축소 된 jQuery 배포는 31K입니다. 분명히 많은 수의 다른 라이브러리를로드하는 웹 페이지가있는 경우가 있지만 질문은 jQuery에만 국한되며 까다로운 프로그래머에 대한 회계는 없습니다.
Adam Crossland

16

사실, 당신이 묘사하는 것은 이미 수년간 존재합니다. 이것을 캐싱 이라고 합니다. 또한 JQuery뿐만 아니라 브라우저가 다운로드 할 수있는 모든 항목에 사용할 수 있습니다.

그런 다음 사이트는 웹 사이트 서버 자체에서 다운로드하도록 기본 설정하기 전에 CDN 전에 먼저 "로컬"을 확인할 수 있습니다.

이것이 바로 모든 브라우저가하는 일입니다. 먼저 로컬 캐시를 확인한 다음 필요한 경우 CDN에서 로컬 캐시를 다운로드합니다. 적절한 캐시 구성을 사용하면 몇 달 동안 서버에 대한 왕복 (최신 버전 확인)도 없습니다.

브라우저 설정에 JQuery를 포함하면 다음과 같습니다.

  • 브라우저 애플리케이션 및 설정에 불필요한 복잡성을 추가하십시오.

  • 프로세스를 업데이트하기 위해 불필요한 복잡성을 추가하십시오.

  • JQuery의 최신 버전을 유지하기 위해 업데이트 횟수를 늘리십시오.

  • 혼란을 추가하십시오 : 왜 프로토 타입이 아닌 JQuery 또는 다른 프레임 워크, 이미지, CSS 파일 등입니까?

  • 기타

기능, 성능 등의 측면에서 이점이없는 소프트웨어 제품의 복잡성을 높이는 것은 매우 나쁜 생각입니다.


감사. 그래, 나는 내 질문에 명확하지 않았다. 나는 그것이 일어나는 일을 잘 알고 있습니다. 첫 번째 다운로드조차도 필요하지 않습니다. 질문을 업데이트하겠습니다.
ozz

브라우저 설정에 포함되지 않는 모든 이유에 감사드립니다 :-)
ozz

6
처음 다운로드 할 필요가 없습니다. JQuery와는 설정에 포함되어있는 경우, 그것은 되는 사람이 설치 실행 파일을 다운로드 처음으로 (JQuery와의 새로운 버전이 출시 될 때 다음 업데이트를 통해 다시 다운로드)로 다운로드.
Arseni Mourzenko

2
성능 저하를 제거하지는 않지만 첫 번째 웹 사이트 방문에서 설치 실행 파일 다운로드로 이동합니다. 이는 전체적으로 성능 절약과 반대입니다. 최신 JQuery 버전 출시 이후 업데이트되지 않은 이전 브라우저 및 브라우저를 지원하려는 경우에도 CDN이 필요하지 않습니다.
Arseni Mourzenko

1
@All이 문제에 대해 더 자세히 논의하려면 채팅에 참여하십시오.
maple_shaft

5

jQuery가 js 라이브러리라는 것을 잊지 마십시오. 사실상 하나가되어 만병 통치약으로 여겨지는 것처럼 보이지만 (SO에 익숙해지기까지) js 라이브러리 일뿐입니다.

스크립팅을 위해 표준화 된 모든 것 (EMCAScript) 이미 브라우저에 포함되어 있습니다. 다른 브라우저에 추가 된 다른 것들은 비표준이되며 비표준 브라우저에 대한 브라우저 간 문제 (IE 이벤트 모델과 같은)로 끝납니다 )는 jQuery와 같은 라이브러리가 처음 생성 된 이유의 일부에 영향을줍니다.

짧은 대답 : 그것들은 포함될 수 있지만 포함해서는 안됩니다.


5

브라우저 캐싱은 당신이 말하는 것과 매우 유사한 것을 제공합니다. jQuery 또는 다른 JS 라이브러리가 한 번 다운로드 된 다음 추가 요청시 캐시에서 검색되는 경우가 있습니다.

jQuery가 가장 보편적 인 JavaScript 라이브러리 일 수 있지만, 이것이 유일한 것은 아니며 브라우저의 설치된 구성 요소로 만드는 것이 JS 생태계에 좋지 않은 것 같습니다. 경쟁은 건전하고 일반적으로 혁신으로 이어지며, 개발자와 소프트웨어 사용자는 jQuery에 특별한 위치를 제공함으로써 잘 보전되지 않을 것입니다.

캐싱을 고려하면 얻을 수있는 이점은 매우 적습니다. 축소 된 jQuery 버전은 31K입니다. 그것은 아무것도 바꾸는 데 대한 근거가 아닙니다 .


고마워 아담-그래, 나는 첫 번째 다운로드, 캐시 시나리오를 알고있다. 내 생각은 그것을 대체해야합니다. JQuery는 하나의 예일 뿐이지 만 경쟁에 대한 당신의 생각에 동의합니다. 이것이 내가 제안한 것이 일어나지 않는 주된 이유 인 것 같습니다. 그러면 다른 "기본"구성 요소 세트를 가진 다른 브라우저를 갖게됩니다.
ozz

캐싱에 대해 알고 있다고 언급하기 위해 질문을 업데이트했습니다. :-)
ozz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.