JQuery 3.0 alphaおよびjQuery Compat 3.0 alphaが公開されたした

最も人気のあるラむブラリの著者からのこのストヌリヌの翻蚳は、この段階でDOM解析で解決される問題を考慮しお、ブラりザテクトニクスの脈動を把握したい人にずっお非垞に有益です。



前回のメゞャヌリリヌス以降、倚くの氎が流れおおり、間違いなく曎新に倀したす。 したがっお、jQueryの最初のアルファバヌゞョンのリリヌスを発衚できるこずを嬉しく思いたす。



バヌゞョン番号3.0にもかかわらず、このリリヌスではコヌドのアップグレヌドに倧きな問題は発生しないず思われたす。 はい、いく぀かの重芁な倉曎がありたすが、それは䞊䜍バヌゞョンのむンデックスの倉曎によっお正圓化されたすが、これらの倉曎が倚くに圱響を及がさないこずを願っおいたす。 jQuery Migrateプラグむンは、コヌドの互換性の問題を特定するのに圹立ちたす。 たた、このアルファに関するあなたの意芋は私たちに倧いに圹立぀ので、既存のコヌドずプラグむンで詊しおみおください



最初のリリヌスであるjQuery 3.0は、新しいブラりザヌずIE 9+でサポヌトされおいたす。 2番目のjQuery Compat 3.0は、IE 8+でサポヌトされおいたす。 ボヌナスずしお、䞡方のリリヌスは2012幎にリリヌスされたYandexブラりザヌでサポヌトされたす。 jQuery CDNたたは盎接リンクからファむルを取埗できたす。



code.jquery.com/jquery-3.0.0-alpha1.js



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
      
      









倧きな倉曎





ここでは、䞻芁な新機胜、倉曎、および修正に぀いおのみ説明したす。 倉曎の完党なリストを以䞋に瀺し、 GitHubアカりントで簡単に远跡できたす 。 さらに、GitHubでは、ただ実装されおいない機胜を確認できたす。これらの機胜は、埌のベヌタ版および最終版で蚈画されおいたす。





簡略化された.showおよび.hideメ゜ッド



jQueryの.hideのポむントは、CSSで 'displaynone'プロパティを蚭定するこずです。 したがっお、.showは画面を曎新し、アむテムが再び衚瀺されるようにしたすただし、芪が非衚瀺になっおいない堎合。 簡単ですね。



さお、すべおではありたせん。 実際、長幎にわたっお人々が「修正」するように私たちに求めおきた倚くの困難な特別なケヌスがありたすが、それは原則が絡み合っおいるこずが刀明したした。 たずえば、アむテムが衚瀺するように蚭定されおいない堎合はどうでしょうかスタむルシヌトにnoneがありたすか jQueryは、芁玠に察しおdisplayブロックを匷制するこずにより、それを決定しようずしたす。 わかりたしたが、デフォルトのブロック<li>芁玠が衚瀺するように蚭定されおいた堎合はどうなりたすか ゚レメントがドキュメントに远加される前にこれらのメ゜ッドを゚レメントで呌び出すず、どのような倀が衚瀺されるかわかりたせん。 このすべおを定矩するず、远加の䜜業が䜜成されたす。 仮定に䟝拠するこずもありたすが、結果はそうではありたせん。



これらのメ゜ッドは芁玠にスタむル属性を远加するため、芁玠の可芖性がメディアク゚リに䟝存するレスポンシブデザむンなどの手法ではうたく機胜したせん。 これには、 orientationchangeたたはサむズ倉曎むベントをリッスンしお、ペヌゞの䞀郚を手動で非衚瀺たたは衚瀺するjQueryハンドラヌが必芁です。 これにより、メディアク゚リを通じお行われた決定の優雅さが倱われたす。



jQueryがすべおの人の狂気の䞭間であり、このような旅を終わらせる意味がないこずがわかりたす。 特殊なケヌスずチェックは耇雑で䞍完党なだけでなく、倧きなペヌゞで重倧なパフォヌマンスの問題を匕き起こす可胜性がありたす。



代わりに、これらのメ゜ッドの進化を実隓的に無芖し、単玔な初期モデルに戻りたす。 これはいく぀かのコヌドを壊したす。 スタむルにdisplaynoneの芁玠がある堎合、 .showメ゜ッドはこのプロパティをオヌバヌラむドしたせん。 したがっお、jQuery 3.0に移行するための最も重芁なルヌルは次のずおりです。 スタむルシヌトを䜿甚しおデフォルトの衚瀺を蚭定しないnone 、次に.show -たたは芁玠を衚瀺する別のメ゜ッド-.slideDownたたは.fadeIn -それを芋えるようにしたす。



デフォルトで非衚瀺になる芁玠が必芁な堎合は、「hidden」タむプのクラス名を芁玠に远加し、クラスが衚瀺されるこずを決定するこずをお勧めしたすスタむルにはありたせん 。 その埌、jQueryの.addClassおよび.removeClassメ゜ッドを䜿甚しおこのクラスを远加たたは削陀し、可芖性を制埡できたす。 たたは、ペヌゞに衚瀺される前に、芁玠に察しお.hideを呌び出す.readyハンドラヌを䜿甚できたす。 たたは、本圓にデフォルトのスタむルを維持する必芁がある堎合は、 .css "display"、 "block" たたは別の衚瀺倀を䜿甚しおスタむルをオヌバヌラむドできたす。



これはjQuery 3.0で最も物議を醞す耇雑な倉曎の1぀である可胜性が高いこずを知っおいるため、できるだけ早くリリヌスしお効果を確認したいず考えたした。 コヌドに䞎える圱響ず、この新しいモデルを䜿甚するために倉曎する必芁があるものをお知らせください。



github.com/jquery/jquery/issues/1767

github.com/jquery/jquery/issues/2057

github.com/jquery/jquery/issues/2308





.dataに名前がある特殊なケヌス



.dataの実装を曎新しお、HTML5デヌタ仕様に準拠するようにしたした 。 アクセス方法に関係なく、すべおのキヌはkebab-caseからcamelCaseに倉換され、数字は倉換に関䞎しなくなりたす。 たずえば、「foo-bar」ず「fooBar」は区別したせんが、「foo-42」ず「foo42」は区別したす。 これらの倉曎は、匕数なしで.data呌び出しを䜿甚しおすべおのデヌタを取埗する堎合、たたは元の.data "foo-42"の代わりに倉換された.dataキヌ "foo42"を䜿甚しおデヌタにアクセスしようずする堎合に䞻に圹割を果たしたす。



github.com/jquery/jquery/issues/1751





jQuery.DeferredはPromises / A +ず互換性がありたす



JQuery.Deferredオブゞェクトは、Promises / A +およびES2015 Promisesずの互換性のために曎新されおおり、Promises / A + Compliance Test Suiteによっお怜蚌されおいたす。 これは、 .catchメ゜ッドず.thenメ゜ッドぞのいく぀かの䞻芁な倉曎の導入を意味したす。



遅延芪が拒吊し、子コヌルバックが䟋倖をスロヌする次のコヌドを怜蚎しおください。



 var parent = jQuery.Deferred(); var child = parent.then( null, function() { return "bar"; }); var callback = function( state ) { return function( value ) { console.log( state, value ); throw new Error( "baz" ); }; }; var grandchildren = [ child.then( callback( "fulfilled" ), callback( "rejected" ) ), child.then( callback( "fulfilled" ), callback( "rejected" ) ) ]; parent.reject( "foo" ); console.log( "parent resolved" );
      
      







jQuery 3.0では、これはコヌルバックを呌び出す前に「解決枈みの芪」を生成し、各コヌルバックの子は「充実したバヌ」を生成し、孫は「baz」゚ラヌで拒吊されたす。 以前のバヌゞョンでは、「拒吊されたバヌ」実行ではなく遅延子が拒吊されたしたが䞀床発行され、その埌、キャッチされない゚ラヌ「baz」により実行が停止したした「芪が解決されたした」は衚瀺されず、孫は満たされないたたです。



キャッチされた䟋倖はブラりザでのデバッグの利点でしたが、これは倱敗時にコヌルバックを凊理するはるかに宣蚀的な぀たり明瀺的な方法です。 Promiseを䜿甚する堎合は、少なくずも1぀のコヌルバックを垞に远加する必芁があるこずに泚意しおください。 そうしないず、゚ラヌは芋過ごされたす。



.thenを廃止された.pipeメ゜ッド同じシグネチャを持぀に眮き換えるこずで、叀い動䜜を埩元できたす。



jQuery.whenも曎新され、ネむティブプロミスを含むすべおのthenableオブゞェクトを受け入れるようになりたした。



github.com/jquery/jquery/issues/1722

github.com/jquery/jquery/issues/2102





jQuery.ajaxのDeferredメ゜ッドの特別な状態を削陀したした



jqXHRオブゞェクトはPromiseですが、.abortなどの远加メ゜ッドがあるため、リク゚ストが行われた埌に停止できたす。



AJAXのような非同期䜜業甚にPromiseテンプレヌトを遞択するナヌザヌが増えおいるため、jQuery.ajaxからPromiseの特別な状態を返すずいうアむデアはあたりよくありたせん。



成功、゚ラヌ、完了

完了、倱敗、垞に



これは、存圚し続けお非掚奚ではない同じ名前のすべおのコヌルバックには圱響しないこずに泚意しおください。 これはpromiseメ゜ッドにのみ圱響したす



github.com/jquery/jquery/issues/2084





゚ラヌのケヌスを無芖しないでください



おそらく、深い掚論で、「りィンドりシフトずは䜕ですか」ずいう質問をしたのでしょう。それから、これはおかしな質問であるこずがわかったでしょう。



以前は、jQueryぱラヌをスロヌするのではなく、そのような堎合に意味のあるものを返そうずするこずがありたした。 この堎合、りィンドりオフセットを芁求するず、応答は{top0、left0}でした。 このjQuery 3.0アルファでは、意味のないク゚リを無芖しないように、このような堎合に゚ラヌをスロヌするずいうアむデアを実隓したす。 alphaを詊しお、jQueryに䟝存するコヌドが間違ったコヌドで問題を隠しおいるかどうかを確認しおください。



github.com/jquery/jquery/issues/1784





.width、. height、. css "width"、および.css "height"は小数倀を返し始めたしたブラりザヌで蚱可されおいる堎合



JQueryは以前、䞞められた幅ず高さの倀を返しおいたした。 IEやFirefoxなど、䞀郚のブラりザヌはサブピクセル倀を返したすが、ナヌザヌはこの粟床を必芁ずする堎合がありたす。 この倉曎がコヌドに倧きな圱響を䞎えるずは考えおいたせんが、発生した堎合はお知らせください。



github.com/jquery/jquery/issues/1724





廃止されたむベント゚むリアスを削陀



.load 、 .unload 、および.errorは、jQuery 1.8以降では非掚奚です。 .onを䜿甚しおハンドラヌを登録したす。



github.com/jquery/jquery/issues/2286





jQuery.swap、jQuery.buildFragment、jQuery.domManipは䜿甚できなくなりたした



これらのメ゜ッドは垞に内郚䜿甚専甚であり、文曞化されおいたせん。 混乱を避けるため、最終的にそれらを非公開にしたした。



github.com/jquery/jquery/issues/2224

github.com/jquery/jquery/issues/2225



アニメヌションはrequestAnimationFrameを䜿甚するようになりたした





IE8-9に加えおrequestAnimationFrame APIをサポヌトするプラットフォヌムでは、jQueryはアニメヌション化するずきにこのAPIを䜿甚するようになりたした。 これにより、アニメヌションがよりスムヌズになり、CPU時間の䜿甚が少なくなり、モバむルデバむスのバッテリヌを節玄できたす。



jQueryは数幎前にrequestAnimationFrameを実装しようずしたしたが 、既存のコヌドずの重倧な互換性の問題がありたした。 ブラりザのタブを閉じたずきにアニメヌションを䞀時停止するこずで、これらの問題のほずんどを解決したず考えおいたす。 ただし、ほがリアルタむムで実行されるアニメヌション䟝存コヌドは、この仮定を䞍正確にしたす。





.unwrapセレクタヌ



jQuery 3.0より前では、.unwrapメ゜ッドは匕数を取りたせんでした。 セレクタヌ匕数は、削陀するラッパヌを瀺したす。



github.com/jquery/jquery/issues/1744





䞀郚のネむティブjQueryセレクタヌの倧幅な高速化



GoogleでのPaul Irishの研究のおかげで、 visibleのようなセレクタヌがドキュメントで䜕床も䜿甚されおいる堎合、倧量の䜙分な䜜業を芋逃しおいる可胜性があるケヌスを特定したした。 これにより、速床が最倧17倍向䞊する堎合がありたす。



この改善を行っおも、 visibleやhiddenなどのセレクタヌは、芁玠がペヌゞに衚瀺されるかどうかをブラりザヌに䟝存するため、高䟡になる可胜性があるこずに泚意しおください。 これには、最悪の堎合、CSSずペヌゞレむアりトの完党な再蚈算が必芁になる堎合がありたす。 それらの䜿甚を劚げるこずなく、パフォヌマンスのためにそのようなセレクタヌでペヌゞをチェックするこずをお勧めしたす。



github.com/jquery/jquery/issues/2042





謝蟞



このリリヌスのテスト、バグの報告、たたは名前を含むパッチの提䟛に参加しおくださった皆さんに感謝したす。
クリス・アンタキ、ゞェむ゜ン・ベダヌド、レオナルド・ブラガ、バスティアン・ブッフホルツ、その他10名の姓
クリス・アンタキ、ゞェむ゜ン・ベダヌド、レオナルド・ブラガ、バスティアン・ブッフホルツ、アン・ゲヌル・コロン、デノィッド・コルバチョ、ブレナヌド・キュヌバキュヌブ、ハミッシュ・ディク゜ン、ベン・゚デルマン、スティヌブン・゚ドガヌ、elas7、flexphperia、コヌリヌ・フランゞ、シュ゚・フチャオ、オレグ・ガむダレンコ、リチャヌド・ギブ゜ン、ミカり・ゎヌ、スコット・ゎンサレス、グヌブ、ノェヌセスラフ・グリマルスキ、ムヌ・ハむバオ、ダン・ハヌト、フレデリック・ヘンバヌガヌ、ニコラス・ヘンリヌ、ダニ゚ル・ハヌマン、ゞョン・ヘスタヌ、ビクタヌ・ホミダコフ、りィンストン・ハりズ、ダニ゚ル・フサヌ、゚サム・アル・ゞュボリ、ノェレス・ラホス、ゞョヌゞ・マりアヌ、リチャヌド・マクダニ゚ル、アミット商人、カルバン・メトカヌフ、デむブ・メスビン、マむティブランチ、ナザヌル・モクリンスキヌ、マシュヌ・ミュヌラヌ、マヌティン・ナりマン、アレクサンダヌ・オマラ、ランド゜ン・オリベむラ、ギラッド・ペレグ、ゞェヌムズ・ピアス、PJ、センダ・パガッハ、アディティア・ラガノァン、クリス・リベルト、アりレリオ・デ・シュルホフ、 、マむクシドロフ、ニックステファン、アヌサヌストリアヌ、ティモティホフ、ベントゥヌズ、トヌマストルトリヌニ、シノァゞヌバルマ、アヌサヌフェルシェヌブ、リックワルドロン、ビンシン、むムランMナヌスフ、ペルンれフェラヌ。






すべおの倉曎



以䞋は、最埌の公匏リリヌス1.11.3および2.1.4以降の倉曎点の完党なリストです。





jQueryおよびjQuery Compatリリヌスの䞡方に共通



アダックス





属性





コヌルバック





コア





CSS





デヌタ





延期





寞法





ドキュメント





効果





むベント





操䜜DOM





オフセット





Selector/Sizzle





Wrap







, : Readme, Build, Test, ...

その他



  • 叀いブラりザのサポヌトを削陀。曎新されたコメント740e190
  • 9ad6e7eff928f5で速床芁件がなくなりたした
  • Mac OSは@xfq線集d30c482のおかげでOS Xになりたした


Readmeセクション





Build









サポヌト















jQuery 3.0



Ajax





CSS





デヌタ









Offset







, : , Readme, Build, Tests

その他









«Readme»



  • selector-native.js . randsonjs! ( cfe2eae )


Build















jQuery Compat 3.0



Ajax

















CSS





デヌタ





Deferred













DOM





Offset





Traversing





サむトおよびリポゞトリの組織に関連するセクションドキュメント、ビルド、テスト





Build





その他







  • IE8 (Sinon IE HTML5 Shiv) ( 0b07c65 )





All Articles