jQuery
jQueryは本当に不要になったのかを技術的に検証する なぜ不要と言われるのか DOM取得 イベント 通信 それでも消えない理由 ネイティブJSだけでは何が困るのか 二重読み込み問題の回避 実務での判断基準 よくある誤解 軽い=正しい 新しい=安全 注意点 まと…
モダンJSと比較したjQueryの責務の変化 かつてのjQueryの役割 モダンJSが変えたもの DOM操作 イベント Ajax アニメーション ではなぜjQueryは残っているのか WordPressで起きている状態 以前 現在 典型例:イベント委譲 責務が減った領域 責務が残った領域 …
`document.querySelector`でjQueryは置き換えられるのか なぜ昔はjQueryが必要だったのか `querySelector`が解決したこと 置き換えできない部分 イベント管理 Ajax アニメーション WordPressで重要になる点 典型的な失敗例 ではjQueryは不要なのか 向いてい…
jQueryをネイティブJavaScriptへ移行する手順 なぜ単純削除が危険なのか 手順1:まず依存箇所を特定する 手順2:document.readyを置き換える 手順3:DOM取得の置き換え 手順4:イベント処理の移行 手順5:クラス操作の置き換え 手順6:Ajax通信 手順7:jQuer…
jQueryを外したらサイトが壊れた原因を分析する なぜ「使っていないのに壊れる」のか 典型例:問い合わせフォーム WordPressコアも使っている 実際に起きているエラー よくある削除方法と問題点 なぜ高速化記事では推奨されるのか 確認手順(実務) 1. 依存…
複数ライブラリ共存時にjQueryが起こす問題 WordPressはJavaScriptが1つではない 「競合」とは何が起きているのか jQuery以外も `$` を使う 典型的な壊れ方 二重読み込みという致命的問題 jQueryプラグインが動かない理由 WordPressがnoConflictを使う本当の…
`$`が競合する理由と`noConflict()`の役割 `$`は特別な記号ではない 競合は実際に起きる `noConflict()`が何をしているのか 実際の状態の変化 WordPressが必ずnoConflictを使う理由 ではどうやってjQueryを書くのか よくある誤解 1. jQueryが壊れていると思…
jQuery依存のテーマが壊れる原因 なぜjQuery依存テーマは壊れやすいのか WordPressのjQueryは普通のjQueryではない 具体的に何が起きるか `$`が使えない理由 正しい書き方 よくある壊れ方 1. CDN版jQueryに置き換えた 2. defer属性を付けた 3. footerへ移動…
WordPressが今でもjQueryを抱えている理由 なぜWordPressはjQueryを削除できないのか WordPressの設計思想:後方互換性は絶対 管理画面がjQueryに依存している現実 なぜモダンJSに移行しないのか jQueryが残る本当の理由:プラグイン互換性 実際にjQueryを外…
jQueryは消えていない。むしろ「消せない」 Webアプリと業務画面は別物 導入コストの差 サーバサイドとの相性 既存システムという現実 小さな機能追加に強い 注意点 最後に jQueryは消えていない。むしろ「消せない」 jQueryはもう使われていない、という話…
jQueryは古い技術だから嫌われているわけではない かつてjQueryが必要だった理由 現在のJavaScriptの変化 「書きやすさ」の逆転 モジュール化との相性 誤解されやすいポイント なぜ「古い」と感じるのか 最後に jQueryは古い技術だから嫌われているわけでは…
jQueryは時代遅れになったのではなく「役割を終えた」 jQueryの前提 ― 「DOMは完成している」 SPAの前提 ― 「DOMは変化する」 状態管理の問題 なぜReact/Vueが解決できたのか 再描画コストの問題 パフォーマンスではなく「設計」の問題 最後に jQueryは時代…
Zepto.jsは「jQueryの軽量版」ではない jQueryが背負っていた最大の仕事 スマートフォンの登場で状況が変わる Zepto.jsの設計思想 サイズが小さい本当の理由 API互換なのに完全互換ではない理由 なぜZepto.jsは広く置き換えなかったのか その後の変化 最後に…
jQueryとPrototype.jsは「似たライブラリ」ではない Prototype.jsのアプローチ ― 言語そのものを拡張する jQueryのアプローチ ― 外側に包む $の衝突問題 なぜPrototype.jsは衰退したのか jQueryが普及した技術的理由 開発体験の違い 最後に jQueryとPrototyp…
$.fnを理解するとjQueryの正体が見える prototypeとは何か なぜ$("div").hide()が呼べるのか $.fnに追加すると何が起きるか thisが指しているもの なぜjQueryはこの設計を選んだのか メソッドチェーンが成立する理由 拡張の危険性 最後に $.fnを理解するとjQ…
「jQueryのプラグイン文化」は偶然ではない なぜコアを小さく保つ必要があったのか プラグインを可能にした技術 ― $.fn なぜ開発者が爆発的に参加したのか 典型的なプラグインの構造 失敗しがちだったポイント そして「jQuery UI」が巨大化した理由 最後に …
CORSの登場で「Ajaxの問題」はほぼ解決しました かつての最大の壁 ― 同一オリジン制約 そこで使われたのがJSONP CORSとは何か CORSで何が変わったのか jQueryの役割の変化 まだ残る誤解 注意点:CORSはクライアント側では設定できない なぜjQueryは急速に使…
JSONPはAjaxの裏技でした なぜそもそも回避が必要だったのか JSONPの仕組み 実際の流れ 手書きJSONPの大変さ jQueryが必要だった理由 JSONPの危険性 JSONPが消えた理由 ― CORS まとめ JSONPはAjaxの裏技でした 結論から書きます。 JSONPは通信技術ではありま…
$.get()と$.post()は別の機能ではありません 実際の内部動作 GETとPOSTの違い(jQueryの話ではない) jQueryが自動で行っている処理 1. クエリ文字列の生成** 2. URLエンコード** 3. Content-Type設定(POST時)** 4. レスポンス解析** 返り値にも重要な意味…
jQueryは非同期処理を「簡単にした」のではなく「難しさを隠した」 非同期処理が難しい本当の理由 XMLHttpRequest時代の地獄 jQueryが行った3つの隠蔽 1. コールバックの統一** 2. 状態の分離** 3. Deferredによるチェーン化** なぜ簡単に感じたのか 実際に…
$.whenはPromise.allの完全互換ではありません まずPromise.allの動作を整理する $.whenの基本動作 最大の違い:返り値の構造 失敗時の挙動の違い 非同期以外も受け取る挙動 単一引数時の挙動 なぜこの違いが生まれたのか 移行時の注意点 まとめ $.whenはPro…
jQueryのDeferredはPromiseの「古い版」ではありません Promiseとは何か(前提整理) jQuery Deferredとは何か なぜこの違いが重要なのか then / done / fail の違い jQuery 1.x〜2.x時代の背景 Promise互換になったのはjQuery3以降 注意点:DeferredをPromi…
昔のWebではfetchは「存在していなかった」だけではありません fetch以前のブラウザは非同期処理を持っていなかった ブラウザの違いが致命的だった JSONがまだ標準ではなかった エラーハンドリングの差 なぜfetchが普及したのか 変化したポイント** 注意点:…
XMLHttpRequestとjQuery.ajaxは「別物」ではありません XMLHttpRequestはなぜ扱いにくかったのか jQuery.ajaxがやったこと ― 抽象化 内部で何が起きているのか 1. XMLHttpRequestを生成** 2. オプション解析** 3. イベント登録** 4. ステータス判定** 5. レ…
jQueryの`$.ajax()`は結局「XMLHttpRequestの操作代行」です そもそもXMLHttpRequestとは何か 当時の開発者が苦しんだポイント** jQuery.ajaxがやっている本当の仕事 XMLHttpRequest** jQuery.ajax** 「ラップしている」とは具体的に何をしているのか 1. XML…
「操作していないのに後から動く」の正体 どうしてキューが溜まるのか 実際に起きる挙動 さらに深刻なケース パフォーマンスへの影響 `stop()`だけでは足りない理由 `finish()`との違い キューが詰まりやすいUI 根本対策 CSSアニメーションとの違い 最後に …
jQueryアニメーションは「同時」に動いていない キューとは何か どのように動いているか コードで見るキュー なぜキューが必要だったのか よくある問題「連打」 `stop()`の役割 キューはアニメーション以外にも使われる `delay()`の正体 `queue:false`とは …
カクつきの原因は「速さ」ではなく「タイミング」 ブラウザは常に描画しているわけではない jQueryアニメーションの仕組み 何が起きているのか requestAnimationFrameとは何か なぜ滑らかになるのか jQueryが不利になる理由 実際のカクつきパターン 特に重い…
`fadeIn()`と`slideUp()`は魔法ではなく「数値の更新ループ」 `fadeIn()`の内部動作 `slideUp()`の内部動作 なぜCSSアニメーションではないのか イージングの仕組み アニメーション中に起きていること `stop()`が必要になる理由 なぜカクつくのか 現代との違…
`hide()`はただのdisplay:noneではない CSSの`display:none`とは何をしているのか jQueryの`hide()`がやっていること `show()`との関係 CSSと混ぜると起きる問題 アニメーション時の違い `visibility:hidden`との違い よくあるバグ 1 表示が戻らない** 2 ア…