jQueryの歎史ずレガシヌ

jQueryの歎史ずレガシヌ
jQuery - これが䞀番人気です 䞖界ではJavaScriptラむブラリ。 Web 開発コミュニティは 2000 幎代埌半にこれを䜜成し、その結果、内郚で jQuery を䜿甚するサむト、プラグむン、およびフレヌムワヌクの豊富な゚コシステムが誕生したした。

しかし近幎、Web 開発の䞻芁ツヌルずしおの地䜍は倱われおきおいたす。 jQuery が人気になった理由ず時代遅れになった理由、そしお最新の Web サむトを䜜成するために jQuery を䜿甚するこずが䟝然ずしお掚奚されるのはどのような堎合なのかを芋おみたしょう。

jQuery の簡単な歎史

ゞョン・レシグ (ゞョン・レシグ) 2005 幎にラむブラリの最初のバヌゞョンを䜜成し、 2006幎に出版-m、BarCampNYCずいうむベントにお。 の䞊 jQuery公匏サむト 著者はこう曞いおいたす。

jQuery は、「JavaScript はコヌディングが楜しくなければならない」ずいうモットヌに基づいた Javascript ラむブラリです。 jQuery は、䞀般的な繰り返しのタスクを凊理し、䞍芁なマヌクアップをすべお取り陀き、タスクを短く、゚レガントで、クリヌンにしたす。

jQuery には XNUMX ぀の䞻な利点がありたす。 XNUMX ぀目は、Web ペヌゞを操䜜するための䟿利な API です。 特に、芁玠を遞択するための匷力な方法を提䟛したす。 jQuery では、ID やクラスで遞択できるだけでなく、耇雑な匏を蚘述するこずもできたす。たずえば、他の芁玠ずの関係に基づいお芁玠を遞択するこずもできたす。

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

時間の経過ずずもに、遞択メカニズムは別のラむブラリに進化したした シズル.

このラむブラリの XNUMX 番目の利点は、ブラりザ間の違いが抜象化されおいるこずです。 圓時、すべおのブラりザで確実に動䜜するコヌドを曞くのは困難でした。

暙準化が欠劂しおいるため、開発者はブラりザず゚ッゞ ケヌス間の倚数の違いを考慮する必芁がありたした。 を芋おみたしょう この初期の jQuery ゜ヌス コヌド jQuery.browser を怜玢したす。 以䞋に䞀䟋を瀺したす。

// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
        // Use the handy event callback
        jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );

// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {

        // Only works if you document.write() it
        document.write("<scr" + "ipt id=__ie_init defer=true " + 
                "src=javascript:void(0)></script>");

        // Use the defer script hack
        var script = document.getElementById("__ie_init");
        script.onreadystatechange = function() {
                if ( this.readyState == "complete" )
                        jQuery.ready();
        };

        // Clear from memory
        script = null;

// If Safari  is used
} else if ( jQuery.browser == "safari" ) {
        // Continually check to see if the document.readyState is valid
        jQuery.safariTimer = setInterval(function(){
                // loaded and complete are both valid states
                if ( document.readyState == "loaded" || 
                        document.readyState == "complete" ) {

                        // If either one are found, remove the timer
                        clearInterval( jQuery.safariTimer );
                        jQuery.safariTimer = null;

                        // and execute any waiting functions
                        jQuery.ready();
                }
        }, 10);
}

そしお jQuery のおかげで、開発者はこれらすべおの萜ずし穎に関する心配をラむブラリを開発するチヌムの肩に移すこずができたした。

その埌、jQuery により、アニメヌションや Ajax などのより耇雑なテクノロゞの実装が容易になりたした。 このラむブラリは事実䞊、Web サむトの暙準䟝存関係ずなっおいたす。 そしお今日、それはむンタヌネットの倧きなシェアを占めおいたす。 W3Techs は次のように信じおいたす。 珟圚、サむトの 74% が jQuery を䜿甚しおいたす.

jQuery 開発の管理もより圢匏的になりたした。 2011幎にチヌムは jQueryボヌドを䜜成したした。 そしお 2012 幎に jQuery Board jQuery Foundation に倉換.

2015 幎に、jQuery Foundation は Dojo Foundation ず合䜵したした。 JS Foundationを䜜成するには、その埌 Node.js Foundation ず統合され、 2019-m 䜜成する OpenJS財団、その䞭で jQuery は「」の XNUMX ぀でした。画期的なプロゞェクト"

状況の倉化

しかし、近幎ではjQuery 人気を倱った。 GitHub サむトのフロント゚ンドからラむブラリを削陀したした。 ブヌトストラップ v5 jQueryを取り陀くそれは圌のものだから」通垞の JavaScript の最倧のクラむアント䟝存関係"(珟圚のサむズは 30 KB、瞮小され、圧瞮されおいたす)。 Web 開発におけるいく぀かの傟向により、必須ツヌルずしおの jQuery の地䜍が匱たっおきおいたす。

ブラりザ

さたざたな理由から、ブラりザの違いや制限はそれほど重芁ではなくなりたした。 たず、暙準化が改善されたした。 䞻芁なブラりザ開発者 (Apple、Google、Microsoft、Mozilla) が協力しお開発を行っおいたす。 りェブ暙準 内に Web ハむパヌテキスト アプリケヌション技術ワヌキング グルヌプ.
ブラりザヌは䟝然ずしお倚くの重芁な点で互いに異なりたすが、ベンダヌは少なくずも、ブラりザヌの代わりに共通のデヌタベヌスを怜玢しお䜜成する手段を持っおいたす。 氞久戊争 䞀緒に。 これに応じお、ブラりザ API には新しい機胜が远加されたした。 䟋えば、 APIをフェッチ jQuery から Ajax 関数を眮き換えるこずができたす。

// jQuery
$.getJSON('https://api.com/songs.json')
    .done(function (songs) {
        console.log(songs);
    })

// native
fetch('https://api.com/songs.json')
    .then(function (response) {
        return response.json();
    })
    .then(function (songs) {
        console.log(songs);
    });

メ゜ッド ク゚リセレクタヌ О querySelectorAll 重耇した jQuery ピッカヌ:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

を䜿甚しお芁玠クラスを操䜜できるようになりたした。 クラスリスト:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

サむト あなたはjQueryを必芁ずしないかもしれたせん jQuery コヌドをネむティブ コヌドに眮き換えるこずができる状況をさらにいく぀か瀺したす。 開発者の䞭には、単に新しい API に぀いお知らないずいう理由で垞に jQuery を䜿い続ける人もいたすが、知っおいるずラむブラリを䜿甚する頻床が枛りたす。

ネむティブ機胜を䜿甚するず、ペヌゞのパフォヌマンスを向䞊させるこずができたす。 倚くの jQueryによるアニメヌション効果 今、あなたは実装するこずができたす はるかに効果的 CSSを䜿甚しお。

XNUMX 番目の理由は、ブラりザヌの曎新が以前よりもはるかに高速になったこずです。 ほずんどの人が䜿甚したす 「゚バヌグリヌン」リニュヌアル戊略ただし、Apple Safari を陀きたす。 これらはナヌザヌの関䞎なしでバックグラりンドで曎新でき、OS の曎新ずは関係ありたせん。

これは、ブラりザの新しい機胜やバグ修正がより迅速に配垃され、開発者はリリヌスされるたで埅぀必芁がないこずを意味したす。 䜿っおもいいですか 蚱容レベルに達するでしょう。 jQuery やポリフィルをダりンロヌドしなくおも、新しい機胜や API を自信を持っお䜿甚できたす。

2000 番目の理由は、Internet Explorer が完党に無関係な状態に近づいおいるこずです。 IE は長い間、䞖界䞭の Web 開発の悩みの皮でした。 そのバグは広範囲に及んでいたした。IE は XNUMX 幎代に䞻流であり、垞緑の曎新戊略を採甚しおいなかったので、叀いバヌゞョンが䟝然ずしお䞀般的です。

2016 幎、Microsoft は IE の廃止を加速したした。 サポヌトを終了する 11 番目およびそれ以前のバヌゞョンでは、サポヌトが IE XNUMX に制限されおいたす。そしお、Web 開発者は IE の互換性を無芖する䜙裕がたすたす増えおいたす。

jQuery ですら、IE 8 以䞋のサポヌトを停止したした。 バヌゞョン2.0、2013幎に出版されたした。 たた、叀いサむトなどでは䟝然ずしお IE サポヌトが必芁な堎合もありたすが、そのような状況が発生する頻床はたすたす䜎くなりたす。

新しいフレヌムワヌク

jQuery の出珟以来、最新のリヌダヌを含む倚くのフレヌムワヌクが䜜成されおきたした。 反応する, 角床の О ノュヌ。 これらには、jQuery に比べお XNUMX ぀の重芁な利点がありたす。

たず、ナヌザヌ むンタヌフェむスをコンポヌネントに簡単に分離できるようになりたす。 フレヌムワヌクは、ペヌゞのレンダリングず曎新を凊理するように蚭蚈されおいたす。 たた、jQuery は通垞、曎新のみに䜿甚され、最初のペヌゞをサヌバヌに提䟛するタスクは残りたす。

䞀方、React、Angular、Vue コンポヌネントを䜿甚するず、HTML、コヌド、さらには CSS を緊密に結合できたす。 コヌド ベヌスを倚くの自己完結型関数やクラスに分割するのず同じように、むンタヌフェむスを再利甚可胜なコンポヌネントに分割する機胜により、耇雑なサむトの構築ず保守が容易になりたす。

XNUMX 番目の利点は、最近のフレヌムワヌクが宣蚀型パラダむムに埓っおいるこずです。このパラダむムでは、開発者がむンタヌフェむスがどうあるべきかを蚘述し、望たしいものを実珟するために必芁な倉曎はすべおフレヌムワヌクに任せたす。 このアプロヌチは、jQuery コヌドの特城である呜什型アプロヌチずは察照的です。

jQuery では、倉曎を加える手順を明瀺的に曞き留めたす。 そしお、宣蚀型フレヌムワヌクでは、「このデヌタによれば、むンタヌフェむスは次のようになりたす。」ず蚀うこずができたす。 これにより、バグのないコヌドの蚘述がはるかに簡単になりたす。

開発者は Web サむト開発に新しいアプロヌチを採甚しおいるため、jQuery の人気は䜎䞋しおいたす。

jQuery をい぀䜿甚するか?

そうするずき でなければなりたせん jQueryを䜿甚したすか?

プロゞェクトの耇雑さが増す堎合は、耇雑さを有意矩に管理できる別のラむブラリたたはフレヌムワヌクから始めるこずをお勧めしたす。 たずえば、むンタヌフェむスをコンポヌネントに分割したす。 このようなサむトで jQuery を䜿甚するず、最初は問題ないように芋えたすが、すぐにどのフラグメントがペヌゞのどの郚分に圱響を䞎えるかわからないスパゲッティ コヌドになっおしたいたす。

私もそのような状況に陥ったこずがありたすが、䜕かを倉えようずするずき、それは難しい䜜業のように感じられたす。 jQuery セレクタヌはサヌバヌによっお生成された HTML 構造に䟝存するため、䜕も壊れないずいう保蚌はありたせん。

スケヌルの察極にあるのは、少しのむンタラクティブ性や動的コンテンツのみを必芁ずするシンプルなサむトです。 ネむティブ API を䜿甚しおできるこずは他にもたくさんあるため、このような堎合もデフォルトで jQuery を䜿甚する぀もりはありたせん。

たずえもっず匷力なものが必芁な堎合でも、私は特化したラむブラリを探したす。 アクシオス アダックスの堎合、たたは Animate.css アニメヌション甚。 これは、小さな機胜のすべおの jQuery をロヌドするよりも簡単です。

jQuery を䜿甚する最倧の根拠は、Web サむトのフロント゚ンドに包括的な機胜を提䟛するこずだず思いたす。 さたざたなネむティブ API や特殊なラむブラリを孊習する代わりに、jQuery ドキュメントを読むだけで、すぐに生産性を高めるこずができたす。

呜什型アプロヌチは拡匵性が高くありたせんが、他のラむブラリの宣蚀型アプロヌチよりも孊習が簡単です。 明らかに機胜が制限されおいるサむトの堎合は、jQuery を䜿甚しお萜ち着いお䜜業するこずをお勧めしたす。ラむブラリは耇雑なアセンブリやコンパむルを必芁ずしたせん。

さらに、サむトが時間の経過ずずもに耇雑にならないずいう確信があり、jQuery よりも倚くのコヌドを蚘述する必芁があるネむティブ機胜を気にしない堎合には、jQuery が適しおいたす。

叀いバヌゞョンの IE をサポヌトする必芁がある堎合は、このラむブラリを䜿甚するこずもできたす。 そうすれば、IE が最も人気のあるブラりザだった時代ず同じように、jQuery が機胜したす。

Prospection

jQuery がすぐになくなるわけではありたせん。 圌女 掻発に開発䞭であり、ネむティブ メ゜ッドが利甚可胜な堎合でも、倚くの開発者はその API を䜿甚するこずを奜みたす。 このラむブラリは、党䞖代の開発者があらゆるブラりザで動䜜する Web サむトを䜜成するのに圹立ちたした。 jQuery は倚くの点で新しいラむブラリ、フレヌムワヌク、パラダむムに眮き換えられおきたしたが、最新の Web の䜜成においお非垞に前向きな圹割を果たしおきたした。

jQuery の機胜が倧幅に倉曎されない限り、ラむブラリの䜿甚量は今埌数幎間でゆっくりず、しかし確実に枛少し続ける可胜性がありたす。 新しい Web サむトは最初から最新のフレヌムワヌクを䜿甚しお構築される傟向があり、jQuery の適切な䜿甚䟋はたすたす皀になっおきおいたす。

Web 開発ツヌルが時代遅れになる速床を気に入らない人もいたすが、私にずっおはそれが急速な進歩の蚌拠です。 jQuery のおかげで、倚くのこずがより良くできるようになりたした。 圌女の埌継者に぀いおも同様です。

出所 habr.com

コメントを远加したす