세계에서 가장 인기 있는 JavaScript 라이브러리인 jQuery는 항상 우리 웹 개발자에게 마법의 무기였습니다. 2006년 첫 출시 이후 지금까지 많은 웹 개발자들은 개발 작업을 더 쉽게 만들기 위해 이 우수한 라이브러리를 프로젝트에 도입해 왔습니다.
3개월이 지나 드디어 jQuery 팀이 3.0 알파 버전을 출시했습니다. jQuery compat 3.0과 jQuery 3.0의 두 가지 버전이 있습니다.
•jQuery compat 3.0은 이전 1.x에 대응하고 더 많은 브라우저와 호환되며 IE 버전 8.0까지 지원합니다
•jQuery 3.0은 이전 2.x에 대응하며, 최신 브라우저에 주의하고, IE는 9.0 버전까지 지원합니다
또한 3.0에는 러시아의 브라우저인 Yandex 브라우저에 대한 지원도 추가되었습니다.
1. 단순화된 표시/숨기기
이전의 표시/숨기기는 완벽하게 호환됩니다. 예를 들어 표시 요소의 표시가 스타일로 작성되어도 스타일시트에 표시될 수 있습니다. 3.0에서는 다릅니다. 스타일시트에 작성된 display:none은 show를 호출한 후에도 여전히 숨겨집니다. 3.0 표시하고 숨기려면 클래스 메소드를 사용하거나, 완전히 숨기려면 hide를 먼저 사용하고(CSS 코드를 사용하지 않고) show를 호출하는 것이 좋습니다.
<style> input { display: none; } </style> <input id="txt" type="text" value=""/> <script> $('#txt').show(); // 仍然隐藏的状态 </script>
2. 데이터 방식은 data-name-11 쓰기와 호환됩니다.
<input id="txt" type="text" value="" data-name-11="aa"/> <script> // 3.0 版本 输出 {"name-11": aa}, 之前版本输出 {} $('#txt').data() </script>
이 문제의 핵심은 $.camelCase 메소드의 구현 차이입니다
// 3.0 输出 "name-11", 3.0 之前版本输出 "name11" $.camelCase('data-name-11')
3. deferred는 Promise/A+와 호환됩니다
3.0은 그동안 거세 버전이라는 비판을 받아온 Promise/A에 대한 지원을 드디어 자신 있게 선언할 수 있게 되었습니다.
4. $.ajax 객체가 성공 | 오류 | 완료 메서드를 삭제했습니다.
이것은 Promise/A 사양의 홍보로 인해 사람들이 Promise를 점점 더 많이 사용하고 있으며 이전에는 Deferred에 여러 메소드가 존재할 필요가 없습니다
•derferred.done -> jqXHR.success
•derferred.fail -> jqXHR.error
•derrerred.always -> jqXHR.complete
// 以下方法在 3.0 后没有了 $.ajax().success $.ajax().error $.ajax().complete
5. 너비/높이, css(너비) / css(높이)의 반환 값은 항상 소수입니다
이전에 일부 브라우저는 특수한 상황에서 부동 소수점 숫자를 반환했습니다.
6. 등록 이벤트 로드 | 언로드 오류
•load 이름이 ajax load와 이름이 같아 불명확합니다.
•unload 로드가 제거되면 언로드는 의미가 없습니다.
•error는 window.onerror를 사용하여 등록되며 표준 이벤트 핸들러가 아니므로 제거하는 것이 좋습니다
위 내용은 jquery3.0의 변경 사항을 요약한 것입니다. 다음은 jquery3.0의 업데이트된 내용과 사용법을 주로 소개합니다.
표시 및 숨기기
가장 큰 변화는 기능 작동 방식입니다. 그리고 그렇게 하는 데에는 그럴 만한 이유가 있습니다. 이전 구현에서 hide() 함수는 css 속성을 "display:none"으로 설정하고 show() 함수는 이 속성을 지웁니다. 하지만 그렇게 하면 조금 혼란스럽습니다. 몇 가지 예를 살펴보겠습니다.
1. show() 함수가 노드를 "display:block"으로 설정하려고 하고 "display:inline" 속성이 다른 스타일시트에 구현되면 코드가 손상되기 시작합니다.
2. 미디어용 반응형 웹 디자인(RWD)을 다룰 때 "디스플레이" 또는 "가시성"을 사용하여 노드의 가시성을 변경할 수 있습니다. 이는 "show()" 및 "hide()" 기능에 영향을 미칠 수 있습니다.
이 외에도 JQuery 팀이 해결해야 할 문제가 많이 있었습니다. 이로 인해 복잡한 구현 및 성능 문제가 발생하여 더 간단한 모델로 마이그레이션했습니다.
앞으로 "display:none"을 설정하고 "show()", "slideDown()", "fadeIn()" 또는 유사한 메서드를 사용하여 노드를 표시하면 작동하지 않습니다. 더 나은 접근 방식은 "addClass()" 및 "removeClass()"를 사용하여 디스플레이를 제어하는 것입니다. 또는 "ready()"가 호출될 때 요소에서 "hide()"를 호출할 수 있습니다.
빠른 예:
<!DOCTYPE HTML><html> <head> <style> .invisible{ display: none; } .visible{ background-color: deepskyblue; display:block; } </style> <script src="jquery-3.0.0-alpha1.js"></script> <script> $(document).ready(function(){ $("#div1").addClass("invisible"); $("#toggle").click(function(){ $("#div1").removeClass("visible"); $("#div1").addClass("invisible"); }); }); </script> <title>Control Visibility</title> </head> <body> <p>Hello!</p> <div id="div1">Can you see this?</div> <button id="toggle">Click me</button> </body> </html>
.data() Key 的命名规则
jQuery 团队改变了 .data() 函数的实现来更符合 HTML5 数据集规范。如果 data-* 属性中的 key 包含了数字,该数字将不再参与转换。思考下面的例子:
使用 jQuery 2.1.4:
控制台窗口不显示对象。
使用 jQuery 3.0.0:
由于现在数字不会参与转换为骆驼拼写法,key 被转换成了 foo-42-name。因此,我们得到了控制台中的输出。这个 fiddle 的网址是 http://jsfiddle.net/nWCKt/25/ 。你可以更改 jQuery 的版本来观察变化。
同样,如果我们想要不带任何参数地使用 data() 显示所有的数据,如果 data-* 属性的 key 名在连字符(-)后面接了一个数字,则参数的数量也将会在两个 jQuery 版本中改变,就像上面的例子一样。
width() 与 height() 函数返回小数值
一些浏览 器会将宽度和高度返回为亚像素值。现在无论浏览器是否支持, jQuery 的 .width()、.height()、.css("width") 都可以返回小数值了。对于为了使用 亚像素精度来 设计网页的用户来说,这可能 会是一个好消息。
.load()、.unload()、及 .error() 函数被移除
这些方法早先已经不赞成使用了,现在则已经从 jQuery 3.0.0 alpha 版中被移除。推荐的方法是使用 .on() 函数来处理这些事件。简短示例:
HTML:
<img src="/static/imghwm/default1.png" data-src="space-needle.png" class="lazy" alt="Space Needle" id="spacen">
JavaScript:
早先的实现方式(现已不可用)
$( "#spacen" ).load(function() { // Handler implementation });
推荐的实现方式:
$( "#spacen" ).on( "load", function() { // Handler implementation });
jQuery 对象现在可遍历了
现在已经可以遍历 jQuery 对象了,使用 ES2015 的 for-of。所以,你可以像这样使用:
for ( node of $( "<div id=spacen>" ) ) { console.log( node.id ); // Returns ‘spacen' }
jQuery 动画现在在后端使用了 requestAnimationFrame API
所有现代的浏览器都已经支持了 requestAnimationFrame(参见: http://caniuse.com/#search=requestAnimationFrame )了。由于其被普遍支持,jQuery 将会使用此 API 来执行动画。其优势包括更流畅的动画及更少的 CPU 占用(因此,可以在手机上节约电量)。
增强 .unwrap() 函数
.unwrap() 函数可以让你在 DOM 中删除指定元素的父元素,早先不能接收参数。如果有人想给 unwrap 设定一个条件,这可能是个问题。
在 jQuery 3.0.0 alpha 中,.unwrap() 可以接收 jQuery 选择器做为参数来处理这个问题。
jQuery.Deferred 升级为 Promises/A+ 兼容
Promiseis是一个异步操作的最终结果——它是一个对象,承诺在未来交付结果。 和promise接口的最主要方式是then方法, 它注册了回调函数。现在,在JavaScript中使用Promise来完成异步工作变得日益流行。Promises/A+是一个兼容JavaScript promises的开放标准。 (想要更多的信息,可以查看链接: https://promisesaplus.com/ )
从jQuery的参考文档中,Deferred对象是一个由jQuery.Deferred()方法创建的可链接实用对象。它可以注册多个回调函数放入回调函数队列中、调度这个队列、更新任何同步或异步方法的成功和失败状态。在jquery 3.0.0中,jQuery.Deferred对象升级成与Promises/A+和ES2015 Promises兼容。 这就是.then()方法的主要变更。
更好地处理错误情况
这个版本的 jQuery 能更好地处理错误 —— 错误请求过去一直是被忽略的,直到现在的版本才会抛出错误。
举例来说:考虑到 offset,要获取当前第一个元素的坐标,相对于文档来说,就要匹配集合中的元素。如果你正试图在 jQuery 的早期版本找到抵消的窗口(window),你会得到{top: 0, left: 0}这样的结果,而不是抛出一个错误,这是因为抵消窗口(window)是无意义的。而在 3.0 alpha 版本中,它就会抛出一个错误。
另外一个例子:$("#") 现在会抛出一个错误,而不是返回一个长度为 0 的集合。
对自定义选择器(如 :visible ) 进行了加速
当 :visible 之类的选择器在一个文档内多次使用时,性能得到了很大的提升。其内部是通过缓存来实现的 —— 第一次用过这个选择器后,以后返回结果都是一样的。但是其后的每一次调用返回结果都很快,因为缓存起作用了。来自 jQuery 的 Timmy Willison 在 报告 中指出使用缓存后 :visible 选择器的性能提升了 17 倍。
这些都是一些主要的更新。整个列表在他们的官方博客: http://blog.jquery.com/2015/07/13/jquery-3-0-and-jquery-compat-3-0-alpha-versions-released/ .
在哪里下载最新版本
有两个版本:
jQuery 3.0,其支持了现代浏览器: https://code.jquery.com/jquery-3.0.0-alpha1.js
jQuery Compat 3.0,其包含了对 IE8 的支持: https://code.jquery.com/jquery-compat-3.0.0-alpha1.js
也可以从 npm 中获取:
npm install jquery@3.0.0-alpha1 npm install jquery-compat@3.0.0-alpha1

예, JavaScript의 엔진 코어는 C로 작성되었습니다. 1) C 언어는 효율적인 성능과 기본 제어를 제공하며, 이는 JavaScript 엔진 개발에 적합합니다. 2) V8 엔진을 예를 들어, 핵심은 C로 작성되며 C의 효율성 및 객체 지향적 특성을 결합하여 C로 작성됩니다.

JavaScript는 웹 페이지의 상호 작용과 역학을 향상시키기 때문에 현대 웹 사이트의 핵심입니다. 1) 페이지를 새로 고치지 않고 콘텐츠를 변경할 수 있습니다. 2) Domapi를 통해 웹 페이지 조작, 3) 애니메이션 및 드래그 앤 드롭과 같은 복잡한 대화식 효과를 지원합니다. 4) 성능 및 모범 사례를 최적화하여 사용자 경험을 향상시킵니다.

C 및 JavaScript는 WebAssembly를 통한 상호 운용성을 달성합니다. 1) C 코드는 WebAssembly 모듈로 컴파일되어 컴퓨팅 전력을 향상시키기 위해 JavaScript 환경에 도입됩니다. 2) 게임 개발에서 C는 물리 엔진 및 그래픽 렌더링을 처리하며 JavaScript는 게임 로직 및 사용자 인터페이스를 담당합니다.

JavaScript는 웹 사이트, 모바일 응용 프로그램, 데스크탑 응용 프로그램 및 서버 측 프로그래밍에서 널리 사용됩니다. 1) 웹 사이트 개발에서 JavaScript는 HTML 및 CSS와 함께 DOM을 운영하여 동적 효과를 달성하고 jQuery 및 React와 같은 프레임 워크를 지원합니다. 2) 반응 및 이온 성을 통해 JavaScript는 크로스 플랫폼 모바일 애플리케이션을 개발하는 데 사용됩니다. 3) 전자 프레임 워크를 사용하면 JavaScript가 데스크탑 애플리케이션을 구축 할 수 있습니다. 4) node.js는 JavaScript가 서버 측에서 실행되도록하고 동시 요청이 높은 높은 요청을 지원합니다.

Python은 데이터 과학 및 자동화에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 데이터 처리 및 모델링을 위해 Numpy 및 Pandas와 같은 라이브러리를 사용하여 데이터 과학 및 기계 학습에서 잘 수행됩니다. 2. 파이썬은 간결하고 자동화 및 스크립팅이 효율적입니다. 3. JavaScript는 프론트 엔드 개발에 없어서는 안될 것이며 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축하는 데 사용됩니다. 4. JavaScript는 Node.js를 통해 백엔드 개발에 역할을하며 전체 스택 개발을 지원합니다.

C와 C는 주로 통역사와 JIT 컴파일러를 구현하는 데 사용되는 JavaScript 엔진에서 중요한 역할을합니다. 1) C는 JavaScript 소스 코드를 구문 분석하고 추상 구문 트리를 생성하는 데 사용됩니다. 2) C는 바이트 코드 생성 및 실행을 담당합니다. 3) C는 JIT 컴파일러를 구현하고 런타임에 핫스팟 코드를 최적화하고 컴파일하며 JavaScript의 실행 효율을 크게 향상시킵니다.

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
