helen's blog

ずっとおもしろいことしてたいな。

jQuery3.0のRC版が出たから読んでみた2(Ajax, Attribute)

jQuery Core 3.0 Upgrade Guide | jQuery
のSummary of Important Changesを読んでいきます

jQuery3.0の記事では下記3項目でまとめられるそうです

  • Breaking change
    • APIの変更による既存のコードへの影響が起こるかもしれない
    • でも滅多にない
  • Feature
    • APIの追加で既存のコードに影響するべきではない
    • しかし影響する可能性がある
  • Deprecated(非推奨)
    • いつかなくなるかもしれない

アップデードしてエラーやWarningが出てるか調べてねって
公式も言ってるので従ったほうが良さそう

以下がjQuery3.0のリリース内容

Ajax

Breaking change: Special-case Deferred methods removed from jQuery.ajax

ajaxからDefferedメソッドがなくなりました

  • success, error, completeからdone, fail, alwaysに変更
  • Promises/A+互換のためにthen, catchを追加
  • jqXHRメソッドにのみ影響する
Breaking change: Cross-domain script requests must be declared

クロスドメインスクリプトの宣言は必須に

  • ajax(), get()で他ドメインに対してリクエストをする時に dataType: "script" を明示する
  • getScript()は上記を設定しているので影響されない
Breaking change: Hash in a URL is preserved in a jQuery.ajax() call

ajax()の呼び出しでURLのハッシュを保存する

  • https://jquery.com/upgrade-guide/3.0/#ajaxの#ajaxのとこがハッシュ
  • ajax()でのハッシュの除去をやめた
  • 完全なURLを送信する
  • もう一端のサーバーがハッシュに対応できない時はリクエスト送信前にハッシュを取り除く
Feature: New signature for jQuery.get() AND jQuery.post()

get(), post()に新シグネチャ追加

  • get(), post()にsettingsパラメータの追加
  • オプジェクトのプロパティが増え、ajax()と同じオブジェクトになる

Attributes

Breaking change: .removeAttr() no longer sets properties to false

removeAttr()でfalseを設定しない

  • 3.0以前はremoveAttr()でchecked, selected, readonlyにfalseを設定していた
  • .prop( "checked", false )が利用されるべき
Breaking change: select-multiple with nothing selected returns an empty array

未選択は空配列を返す

  • 3.0以前で未選択の場合はnullが返っていた
  • 未選択の場合は空配列がreturnされるようになった
Feature: SVG documents support class operations

SVGをサポートしたい

  • 3.0でもSVGは完全にサポートされていない
  • addClass()やhasClass()などSVGドキュメントを扱えるjQueryメソッドはある
Deprecated: .toggleClass() with no arguments and .toggleClass( Boolean )

引数なしのtoggleClassは非推奨に

  • 定義されていない挙動は非推奨に
  • .toggleClass( undefined ) が引数なしと同じ挙動をしてしまうため

続きは今度
なげー