JQuery는 프로토타입 이후 또 다른 뛰어난 Javascript 라이브러리입니다. CSS3 및 다양한 브라우저(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+)와 호환되는 경량 js 라이브러리입니다. jQuery2.0 및 후속 버전은 더 이상 IE6/7/8 브라우저를 지원하지 않습니다. jQuery를 사용하면 사용자는 HTML(Standard Universal Markup Language의 응용 프로그램), 이벤트를 더 쉽게 처리하고, 애니메이션 효과를 구현하고, 웹 사이트에 AJAX 상호 작용을 쉽게 제공할 수 있습니다. jQuery의 또 다른 큰 장점은 문서가 매우 완벽하고 다양한 애플리케이션이 자세히 설명되어 있다는 점입니다. 선택할 수 있는 성숙한 플러그인도 많이 있습니다. jQuery는 사용자 HTML 페이지의 코드와 HTML 콘텐츠를 분리하여 유지할 수 있습니다. 즉, 명령을 호출하기 위해 HTML에 여러 개의 js를 삽입할 필요가 없습니다.
jQuery는 여러 브라우저와 호환되는 자바스크립트 라이브러리입니다. 핵심 개념은 적게 쓰고 더 많은 작업을 수행하는 것입니다. jQuery는 2006년 1월 뉴욕 바캠프에서 미국인 John Resig에 의해 출시되었습니다. jQuery는 전 세계의 많은 JavaScript 전문가를 끌어모았으며 Dave Methvin이 이끄는 팀에 의해 개발되었습니다. 오늘날 jQuery는 세계에서 가장 많이 방문한 웹사이트 상위 10,000개 중 55% 이상이 사용하는 가장 인기 있는 JavaScript 라이브러리가 되었습니다.
jQuery는 무료 오픈 소스이며 MIT 라이선스에 따라 라이선스가 부여됩니다. jQuery의 구문 디자인은 문서 객체 조작, DOM 요소 선택, 애니메이션 효과 생성, 이벤트 처리, Ajax 및 기타 기능 사용 등 개발을보다 편리하게 만듭니다. 또한 jQuery는 개발자가 플러그인을 작성할 수 있는 API를 제공합니다. 모듈식 사용을 통해 개발자는 강력한 정적 또는 동적 웹 페이지를 쉽게 개발할 수 있습니다.
jQuery는 이름에서 알 수 있듯이 JavaScript이자 JavaScript 개발을 지원하는 라이브러리인 Query입니다.
연혁
1992년경 Nombas라는 회사에서 C-뺄셈(C-minus-minus)이라는 제품을 개발했습니다. , 줄여서 Cmm) 내장된 스크립팅 언어입니다. Cmm의 기본 아이디어는 간단합니다. 매크로를 대체할 수 있을 만큼 강력한 스크립팅 언어인 동시에 개발자가 빠르게 배울 수 있을 만큼 C(및 C++)와 유사함을 유지하는 것입니다. 스크립팅 언어는 CEnvi라는 셰어웨어에 번들로 포함되어 개발자에게 처음으로 언어의 강력함을 보여주었습니다.
Nombas는 마지막 부분(mm)이 너무 부정적으로 들리고 문자 C가 "무섭다"는 이유로 결국 Cmm의 이름을 ScriptEase로 변경했습니다.
Netscape Navigator가 유명해졌을 때 Nombas는 웹 페이지에 삽입할 수 있는 CEnvi 버전을 개발했습니다. 이러한 초기 실험은 Espresso Pages라고 불리며 World Wide Web에서 사용되는 최초의 클라이언트 측 언어를 나타냅니다. Nombas는 그 개념이 World Wide Web의 중요한 초석이 될 것이라는 것을 전혀 몰랐습니다.
인터넷 서핑이 점점 대중화되면서 클라이언트측 스크립트 개발의 필요성도 점차 높아지고 있습니다. 당시 웹페이지가 계속 커지고 복잡해졌음에도 불구하고 대부분의 인터넷 사용자는 28.8kbit/s 모뎀을 통해서만 네트워크에 연결되었습니다. 사용자를 더욱 비참하게 만드는 것은 단순한 양식 유효성 확인을 위해서만 서버와의 여러 왕복 상호 작용이 필요하다는 것입니다. 사용자가 양식을 작성하고 제출 버튼을 클릭한 후 처리를 위해 30초를 기다린 후 필수 필드를 작성하는 것을 잊었다는 메시지를 본다고 가정해 보세요.
당시 기술 혁신의 선두에 있던 넷스케이프는 단순한 처리 문제를 해결하기 위해 클라이언트측 스크립트 언어 개발을 진지하게 고려하기 시작했습니다.
당시 넷스케이프에서 근무하던 브렌던 아이크(Brendan Eich)는 1995년 출시를 앞두고 있던 넷스케이프 내비게이터 2.0용 라이브스크립트(LiveScript)라는 스크립트 언어를 개발하기 시작했다. 브라우저와 서버(원래 LiveWire라고 불릴 예정) 측에서 이를 사용합니다. Netscape와 Sun은 시간 내에 LiveScript 구현을 완료했습니다.
Netscape Navigator 2.0이 공식 출시되기 직전에 Netscape는 인터넷 유행어인 Java를 활용하기 위해 이름을 JavaScript로 변경했습니다. Netscape의 투자는 성공을 거두었고 이후 JavaScript는 인터넷의 필수 구성 요소가 되었습니다.
JavaScript 1.0이 큰 성공을 거두었기 때문에 Netscape는 Netscape Navigator 3.0에서 버전 1.1을 출시했습니다. 그 당시 Microsoft는 브라우저에 진출하기로 결정하고 JScript(Netscape와의 잠재적인 라이센스 분쟁을 피하기 위해 명명된 이름)라는 JavaScript 복제본과 함께 IE 3.0을 출시했습니다. 악명 높긴 했지만 Microsoft의 웹 브라우저 세계 진출은 JavaScript 언어 발전의 중요한 단계이기도 했습니다.
Microsoft가 등장한 이후에는 Netscape Navigator 3.0의 JavaScript, IE의 JScript, CEnvi의 ScriptEase라는 세 가지 버전의 JavaScript가 동시에 존재했습니다. C 및 기타 프로그래밍 언어와 달리 JavaScript에는 구문이나 기능을 통합하는 표준이 없으며 이 세 가지 버전은 이 문제를 강조합니다. 업계의 우려가 증가함에 따라 이 언어의 표준화가 필수적이라는 것이 분명해졌습니다.
2006년 1월, jQuery의 첫 번째 버전이 출시되었는데, 벌써 10년이 넘었습니다. (참고: 이 시점은 공개 시점을 기준으로 합니다.) 오랜 시간이 지난 후에도 간단하고 유연한 프로그래밍 스타일로 사람들이 첫눈에 반하게 만듭니다. 본 글에서는 독자들이 jQuery에 대해 더 잘 알 수 있도록 jQuery의 개발 역사를 알려드리겠습니다.
jQuery가 빠르게 발전하는 동안 일부 대형 제조업체도 비즈니스 기회를 포착했습니다. 2009년 9월, Microsoft와 Nokia는 오픈 소스 jQuery 라이브러리에 대한 지원을 공식적으로 발표했습니다. 또한 Microsoft는 jQuery를 Visual Studio 도구 세트의 일부로 사용할 것이라고 발표했습니다. jQuery 스마트 팁, 코드 조각, 샘플 문서 등을 포함한 기능을 제공합니다. Microsoft와 Nokia는 오랫동안 jQuery 사용자 회원으로 활동할 예정이며, 기타 회원으로는 Google, Intel, IBM, Intuit 및 기타 회사가 포함됩니다.
2009년 1월 jQuery 버전 1.3이 출시되었습니다. 이는 다양한 브라우저에서 동일한 유형의 다른 JavaScript 프레임워크의 쿼리 속도를 전반적으로 능가하는 새로운 선택기 엔진 Sizzle을 사용하며 프로그램 라이브러리의 성능도 크게 향상되었습니다. 개선되었습니다. 이 버전의 두 번째 변경 사항은 live() 메서드를 사용하여 현재 및 향후 요소에 이벤트를 바인딩할 수 있다는 것입니다. livequery 플러그인을 사용해야 하는데, 1.3 버전에서는 live() 메소드를 직접 사용할 수 있습니다. 2005년 8월 John Resig는 Prototype의 "Behaviour" 라이브러리 개선을 제안하여 자신의 아이디어를 자신의 블로그에 게시하고 이를 설명하기 위해 세 가지 예를 사용했습니다.
당시 John의 아이디어는 간단했습니다. 그는 이 구문이 기존 JavaScript 라이브러리보다 간단하다는 것을 발견했습니다. 하지만 그가 예상하지 못한 것은 이 기사가 게재되자마자 업계에서 폭넓은 관심을 끌었다는 점이다. 그래서 John은 이 문제(더 간단한 구문으로 JavaScript 라이브러리 작성)에 대해 진지하게 생각하기 시작했고, 2006년 1월 14일까지 John은 jQuery라는 이름으로 자신의 라이브러리를 출시하겠다고 공식적으로 발표했습니다. 그 뒤를 이어 jQuery가 급속하게 발전했습니다.
2006년 8월, jQuery의 첫 번째 안정 버전이며 이미 CSS 선택기, 이벤트 처리 및 AJAX 상호 작용을 지원합니다.
2007년 7월, jQuery 버전 1.1.3이 출시되었습니다. 이번 마이너 버전 변경에는 jQuery 선택기 엔진의 실행 속도가 크게 향상되었습니다. 이 버전부터 jQuery의 성능은 Prototype, Mootools, Dojo와 같은 유사한 JavaScript 라이브러리 수준에 도달합니다. 같은 해 9월에는 CSS 구문에 비해 XPath 선택기가 중복되었기 때문에 XPath 선택기에 대한 지원을 제거한 jQuery 버전 1.2가 출시되었습니다. 이 버전에서는 효과를 보다 유연하게 사용자 정의할 수 있으며, 새로운 네임스페이스 이벤트의 도움으로 플러그인 개발도 더욱 쉬워졌습니다. 동시에 jQuery UI 프로젝트도 출시되었습니다. 이 새로운 제품군은 한때 인기가 있었지만 오래된 인터페이스 플러그인을 대체하는 프로젝트로 출시되었습니다. jQuery UI에는 미리 정의된 다수의 위젯과 고급 요소(예: 드래그 앤 드롭, 정렬)를 구축하기 위한 도구 세트가 포함되어 있습니다.
2010년 2월 jQuery 버전 1.4.2가 출시되었습니다. 이 버전에는 이벤트 위임에 대한 두 가지 새로운 메서드인 위임()과 위임 해제()가 추가되었습니다. 1.3.2의 live() 메소드를 대체하기 위해 Delegate()가 사용되었습니다. 이 메소드는 live()보다 편리하며 이벤트를 동적으로 추가하는 기능도 구현할 수 있습니다. 예를 들어 테이블
Features
의 각 td에 호버 이벤트를 바인딩합니다.1. 동적 특수 효과
2. AJAX
3. 플러그인을 통해 확장
4. 편리한 도구 - 예를 들어 브라우저 버전 판단
5. 점진적인 개선
6. 체인 호출
7. Internet Explorer6.0+, Opera9 지원 .0+, Firefox2+, Safari2.0+, Chrome1.0+(Internet Explorer6,7,8에 대한 지원은 2.0.0에서 취소되었습니다.)
이전 버전
jQuery 1.0
(2006년 8월): 이미 CSS 선택기, 이벤트 처리 및 AJAX를 지원하는 안정적인 첫 번째 라이브러리 버전 상호 작용에 대한 강력한 지원 .
jQuery 1.1
(2007년 1월): 이 버전은 API를 대폭 단순화했습니다. 덜 일반적으로 사용되는 여러 가지 방법이 결합되어 숙지하고 설명해야 하는 방법의 수가 줄어듭니다.
jQuery 1.1.3
(2007년 7월): 이 마이너 릴리스에는 jQuery 선택기 엔진의 실행 속도가 크게 향상되었습니다. 이 버전부터 jQuery의 성능은 Prototype, Mootools, Dojo와 같은 유사한 JavaScript 라이브러리 수준에 도달합니다.
jQuery 1.2
(2007년 9월): 이 버전에서는 XPath 선택기가 중복되었기 때문에 지원을 제거합니다. 이 버전은 보다 유연한 효과 사용자 정의를 지원하고 새로운 네임스페이스 이벤트를 통해 플러그인 개발을 더 쉽게 만듭니다.
jQuery UI(2007년 9월): 이 새로운 플러그인 제품군은 한때 인기가 있었지만 오래된 인터페이스 플러그인을 대체하는 프로젝트로 출시되었습니다. jQuery UI에는 미리 정의된 다수의 위젯은 물론 드래그 앤 드롭 인터페이스 요소와 같은 고급 요소를 구축하기 위한 도구 세트가 포함되어 있습니다.
jQuery 1.2.6
(2008년 5월): 이 버전은 주로 Brandon Aaron이 개발한 인기 있는 Dimensions 플러그인의 기능을 jQuery 1.2.6에 이식했습니다. 코어 라이브러리.
jQuery 1.3
(2009년 1월): 이 버전은 새로운 선택기 엔진 Sizzle을 사용하며 라이브러리 성능이 크게 향상되었습니다. . 이번 버전에서는 이벤트 위임 기능을 공식적으로 지원합니다.
jQuery 1.3.2
(2009년 2월): 이 마이너 버전 업그레이드는 다음과 같이 라이브러리 성능을 더욱 향상시킵니다. :hidden selector 및 .height()/.width() 메소드의 처리 메커니즘. 또한 문서 순서대로 반환될 요소 쿼리도 지원합니다.
jQuery 1.4
(2010년 1월 14일): 코드 베이스가 내부적으로 재작성되고 정리되었으며 일부 스타일 사양이 확립되기 시작했습니다. 이전 core.js 파일은 CSS와 속성을 논리적으로 분리하기 위해 attribute.js, css.js, data.js, Manipulation.js, traversing.js 및 queue.js로 구분됩니다.
중요 변경 사항:
1. Ajax 다시 작성
Ajax 모듈이 완전히 다시 작성되었습니다. 다양한 브라우저에 내장된 XMLHttpRequest의 일관된 상위 집합을 제공하기 위해 새로운 jXHR 개체가 추가되었습니다. JSONP 요청과 같은 XMLHttpRequest 이외의 전송 메커니즘의 경우 jXHR 개체도 처리될 수 있습니다. (자세한 내용은 jQuery.ajax 문서를 참조하세요.)
또한 시스템의 확장성이 크게 향상되고 다양한 데이터 프로세서, 필터 및 전송 메커니즘을 부착할 수 있어 새로운 개발이 용이해집니다. Ajax 플러그인.
2. 지연 객체
지연 객체(Deferred Object, jQuery.Deferred 객체)는 Promise 인터페이스를 구현하고 콜백 대기열에 등록할 수 있는 체인 가능한 유틸리티 객체입니다. 콜백 대기열 및 동기/비동기 함수의 성공 또는 실패 상태 전달. jQuery 1.5에서 Deferreds 사용에서 설명했듯이 결과적으로 jQuery는 작업(이벤트)의 결과에 의존하는 논리를 작업 자체에서 분리할 수 있습니다. 이는 JavaScript에서 새로운 것이 아니며 Mochikit과 Dojo는 한동안 이를 구현해 왔습니다. jQuery 1.5의 Ajax 모듈은 내장된 지연된 객체를 사용하므로 jQuery를 통해 작성된 Ajax 프로그램은 자동으로 이 기능을 갖게 됩니다.
이제 개발자는 즉시 사용할 수 없는 반환 값(예: 비동기 Ajax 요청의 반환 결과)을 사용할 수 있으며 처음으로 여러 이벤트 핸들러를 연결할 수 있습니다.
예를 들어 새로운 jQuery 내부 Ajax API를 사용하면 다음 코드를 구현할 수 있습니다.
// 요청 후 즉시 핸들러를 할당하고// 이 요청에 대한 jxhr 객체를 기억합니다. var jxhr = $.ajax({ url: "example.php" }) .success(function() { 경고("성공"); }) .error(function() { 경고("오류"); }) 완료. (function() { Alert("complete"); });// 여기에서 다른 작업을 수행합니다 ... // 위 요청에 대한 다른 완료 함수를 설정합니다. jxhr.complete(function(){ Alert("second Complete") ; });
또한 jQuery.Deferred를 사용하여 자신만의 지연된 객체를 개발할 수 있습니다. 자세한 내용은 지연 객체 문서를 참조하세요.
3. jQuery.sub()
jQuery 1.5는 jQuery 복사본을 생성하고 수정하는 방법을 제공합니다. 외부 세계에 노출되지 않는 메서드를 추가하거나, 새로운 기능을 제공하기 위해 jQuery의 특정 메서드를 재정의하거나, 더 나은 캡슐화를 제공하고 네임스페이스 충돌을 방지하는 데 사용할 수 있습니다. 물론 플러그인 개발에도 사용할 수 있지만 Resig는 플러그인을 개발하기 전에 jQuery UI 위젯 팩토리를 고려할 것을 강력히 권장합니다.
sub 함수는 실제 격리를 제공하지 않으며 모든 메서드, 데이터 및 호출은 여전히 jQuery 자체에 의존하여 이를 지원한다는 점에 주목할 가치가 있습니다.
4. 향상된 순회 성능
새 버전에서는 .children(), .prev() 및 .next()와 같이 일반적으로 사용되는 여러 순회 함수의 성능이 크게 향상되었습니다. 개선되었습니다.
5. 내부 개발 시스템
John Resig는 jQuery 팀 내부 개발 시스템의 두 가지 변경 사항도 구체적으로 언급했습니다. 첫째, 서버 측에서 이전 Java/Rhino 시스템이 Node.js로 대체되어 팀이 JavaScript의 새로운 변경 사항에 집중할 수 있게 되었습니다. 둘째, My 코드 최적화 프로그램이 Google Closure에서 UglifyJS로 전환되었으며 새로운 도구의 압축 효과가 매우 만족스럽습니다.
사용방법
jQuery를 다운로드하여 사용할 수 있으며, 두 가지 버전의 jQuery를 다운로드할 수 있습니다.
프로덕션 버전 - 실제 웹사이트에서 사용할 수 있도록 간소화되고 압축되었습니다.
개발 버전 - 테스트 및 개발에 사용(비압축, 가독성 있는 코드)
jQuery 버전 1.8.0 압축 전후 비교
플러그인 메커니즘
jQuery의 공식 플러그인은 jQuery UI입니다. 개발자는 필요에 따라 jQuery의 함수 라이브러리를 임의로 확장하거나 UI 구성 요소를 개발할 수 있습니다. 인터넷에는 이미 다양한 요구 사항을 충족하는 수만 개의 jQuery 플러그인이 있습니다. 예를 들어 Ajax 지원, 데이터 테이블, 동적 목록, XML 도구, 드래그 앤 드롭, 쿠키 처리, 팝업 레이어 등이 있습니다. jQuery의 문서는 매우 완벽하며 다양한 애플리케이션에 대해서도 자세히 설명되어 있습니다. ASP NET Wijmo용 ComponentOne Studio와 같이 선택할 수 있는 성숙한 플러그인도 많이 있습니다.
jQuery 플러그인을 사용하면 웹 사이트 구축 프로세스 사용률이 지속적으로 증가하고 있으므로 프런트엔드 사용자 경험을 통합 및 개선하고 사용자 경험을 새로운 수준으로 끌어올리기 위해 시대의 속도에 맞춰 몇 가지 새로운 플러그인/코드 조각을 개발해야 합니다. . 여기에는 Flat jQuery Price Slider, Gmaps jQuery Map Plugin, FormChimp - jQuery용 MailChimp Ajax 플러그인 등이 포함됩니다.
컨트롤
jQuery Gantt 컨트롤은 네이티브 HTML5/jQuery를 기반으로 하는 풍부한 기능을 갖춘 컨트롤로, 진정한 크로스 플랫폼이며 다양한 장치와 브라우저에서 작동합니다. 원활한 작동 .
프로젝트 간트 차트에 내장된 일정 관리, 종속성 및 기타 기능을 사용하여 작업의 계층적 목록을 시각화하세요.
리소스 간트 차트를 사용하여 리소스 활용도 보기를 구현합니다.
API 기반 jQuery 또는 API 기반 MVC를 사용하면 간트 차트를 쉽게 설치하고 애플리케이션 속도를 높일 수 있습니다.
KnockOut(KO), jQuery.tmpl 등 널리 사용되는 jQuery 패턴과 함께 사용할 수 있습니다.