jQuery Mobile RC3〜正式版とは何だったのかサマリー

正式版になりましたね

思わず始めてしまった詳説シリーズ(?)も,さすがに即日対応はやめましたが,いよいよ正式版もリリースされましたので,これで途絶えようかと.

ともかく正式版がリリースされましたので,RC3〜正式版でのトピックをまとめます.主要な変更はRC3で行われていて,ほとんどそのまま正式版として順当にリリースされている流れです.

RC3および正式版の主要変更ヘッドライン

とにかくパフォーマンスチューニングされた

RC3では多くのパフォーマンスチューニングが入りました.以下の解説(怪しい意訳)以外にも,Change Logには多くの高速化への取り組みとその改善結果が書かれています.

パフォーマンスのファクター

非力なデバイスの遅いJSエンジンでも快適に動いて欲しいという,パフォーマンス上の課題は常にあります.また,一概にパフォーマンスといっても,そこには様々なファクターが絡んでいます.

  • タッチイベントの応答性
  • ページトランジションの滑らかさ
  • ページのレンダリング速度

タッチイベントやトランジションのような部分については,根本的なリファクタリングが必要とされていますが,それはバージョン1.1で行われる予定です.

RC3ではページのレンダリング速度にフォーカス

そんなわけで,RC3ではページのレンダリング速度を中心に高速化が行われました.それは以下のような内容が含まれます.

  • ページエンハンスメント
  • AJAXページローディング
  • トランジションタイム

ページエンハンスメントは,classの追加やHTML要素の追加,ARIA属性の追加,イベントリスナの適用といった一連の自動処理を指します.

これらの処理はプログレッシヴエンハンスメントに基づき,最小限であり個々の要素では高速です.しかし,要素数が多くなったときに非力なデバイスでパフォーマンスが低下するため,関数呼び出しの削減による高速化をはかりました

ケース1 Form Galleryのエンハンスメント所用時間
少なくとも30-50%の範囲で高速化,特にWP7.5では226%の高速化
ケース2 400の要素を含むListviewのエンハンスメント所用時間
少なくとも250%の高速化,特にWP7.5では200%の高速化

非常にめざましい成果ではないでしょうか.改めてJSの関数呼び出しってコスト高いんですね.(字面通りの単純な呼び出し回数の削減なのかはちょっと不明ですが...)

WPに関しては異常な数字です.というか.WPのJS周りはどんだけ歪な実装なんですか….

自動のAJAXナビゲーションリンクの自動バインドを抑止するオプション

linkBindingEnabledオプションでAjaxリンクの自動ナビゲーションを無効化できるようになりました.この場合は,自前のスクリプトでリンクについて制御する必要があります.

$(document).bind("mobileinit", function(){
     $.mobile. linkBindingEnabled = false;
});

dialog呼び出し時などのオーバーレイにテーマを適用

data-role="page"が指定された要素や,メニューをもつselect要素にdata-overlay-theme属性を付与します.

<div data-role="page" data-overlay-theme="a">
     // header, content, footer...
</div>
<select data-overlay-theme="b">
     // options...
</select>

新しいドキュメントの追加

いくつかのドキュメントがさらに拡充されました.カスタムデータ属性の理ファンレスは地味にすばらしいですね.ちょっと和訳してまとめておこうかしら.

Phonegap
PhoneGapについての説明を諸々
Data Attribute Reference
カスタムデータ属性のリファレンス
Configuration
設定のグローバル設定をテストする

Listviewが親要素のテーマを継承するようになった

だそうです.

1.0正式版時点でjQuery本体は1.6.4をサポート

だそうです.

現行のjQuery本体は1.7が最新リリースですが,その対応はjQuery Mobile v1.1で対応していくとのことです.1.1もまた矢継ぎ早にでてきそうですね.

正式版のリリースでいよいよ普及しそう

いままでベータとかアルファとかRCとか付いていた為に,実案件に投入されなかったケース(それは非常に賢明な判断だと思いますが)もあったかと思います.いよいよ正式版になったことで,その辺の躊躇いも解消されて,国内でも良い採用事例が増えていくのではないでしょうか.

アルファの頃は,実装スタイルは面白いけど,動きがひどくてどうしたものかと思っておりました.

それがベータの頃にはアニメーションの不自然な動きが改善され,RC版の最後でもパフォーマンスチューニングによりページ表示が高速化されました.

結果,順当に不安なところが着実に取り除かれていった上で,正式版リリースに至っているので今後もさらに良いバージョンアップが期待できるんじゃないかな,と思っています.