8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

jQueryAdvent Calendar 2017

Day 1

jQuery 1.0の頃の世界と今を比較してみる

Last updated at Posted at 2017-11-30

時代が進みすぎた結果、今となっては存在感も薄れていくjQueryですが、数年前まではJavaScriptライブラリの王道と言っていい地位を占めていました。では、時計の針をjQuery誕生の頃まで戻して、どんな位置付けだったか見ていきましょう。

jQueryがリリースされた頃の世界

jQueryの初リリースは2006年とのことですが、この頃Webブラウザ界はどんな世界線だったのか振り返ってみましょう。

  • Internet Explorer…7のリリースが2006年後半
  • Firefox…1.0、1.5、2.0
  • Netscape…8(Mozillaベース)
  • Safari…2.0
  • Chrome…誕生前(初版が2008年)
  • iPhoneもAndroidもリリース前

ということで、時代はIE vs Netscapeのブラウザ戦争が片付いた結果、「ブラウザごとにAPIも何もかも違う」という状況はひとまず解決したものの、まだまだDOM実装にはブラウザごとの差異がある、というような環境でした(IEにaddEventListenerが登場したのは、IE 9での話です)。そして、要素の検索メソッドもgetElementByIdgetElementsByNamegetElementsByTagNameぐらいしかなく、IE 6ではXHRもActiveXObjectとして実装されている、というように、現代の水準からすればない物づくしでした。

jQuery 1.0の水準

現在のjQueryサイトでも1.0からあったものを抽出できますが、そこで揃っていたメソッドは、現在のjQueryと基本的に同じようなものです(後から追加された機能もちょくちょくありますが、.closestが1.3から、Deferred.propが1.6から、.onが1.7からという感じです)。

  • セレクタ1つでエレメントの検索ができる$()
  • DOMのルールに従って正しくバブリングし、ブラウザを問わず同じ形でセットできるイベント(※)
  • エレメントに結びつけてもメモリリークしない、イベントハンドラやデータ構造(※)
  • スッキリとメソッドチェーンで書ける利便性
  • window.loadより早いタイミングで動作する、$(関数)
  • 便利に使えるAjax関数

この時代背景を踏まえれば、当時のjQueryがどれだけ便利な存在だったか、想像できることかと思います。

現代に至る変化

さて、このjQueryが提供していた利便性ですが、ブラウザ自体の進化により、次第に魅力を減じていくこととなります。セレクタはdocument.querySelectorAllでブラウザネイティブの取得ができるようになり、IEもDOMをしっかり実装していった結果、ブラウザごとの実装をjQueryで吸収する必要も減ってきました。アニメーションもCSSアニメーションのほうが負担が軽いということで、jQueryのをゴリゴリ使う時代でもなくなっています。

$(関数)DOMContentLoadedとしてブラウザイベントとして取れるようになる、jQueryのクラス系のメソッドと同様なものがclassListに実装される、.closestがネイティブ実装されるなど、jQueryに影響を受けたと思しきDOMの実装すら存在するようになっています。

このようにして、「クロスブラウザ」と「便利なメソッド」の利点がなくなっていき、そして仮想DOMが全盛となって直接DOM操作すること自体がバリバリ行われるものではなくなってきた中、jQueryに残ったものは「メソッドチェーン」、「簡潔なメソッド名」と「jQueryプラグイン」ぐらいかな、という感じです。

8
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?