BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース jQueryはGoogleからPointer Events Polyfillを引き継ぐ

jQueryはGoogleからPointer Events Polyfillを引き継ぐ

原文(投稿日:2014/12/30)へのリンク

Chromiumチームは8月に、GoogleはTouch Eventsにフォーカスするために、ChromeではPointer Eventsを実装しないことを発表した。現在、彼らはPointer Events polyfillライブラリの制御をjQueryに引き渡し、“開発者がこの統合されたイベントシステムを採用するようにして”、結果的に“すべてのブラウザーがこれをネイティブに実装する”ことを期待している。

W3Cは、AppleとGoogleのサポートがないにも関わらず、Pointer Events標準化プロセスを勧告案に進めた。Pointer EventsはMicrosoftによって提案され、Googleがそれを最初にサポートして、Polymerチームが実装ライブラリを作成したが、現在彼らは興味を失ったのは、“現時点では、GoogleはBlinkにおいてPointer eventsに投資すべきではないという意見が高まったためだという。除外しており、実装の計画はない” と6月前半に開催された主要ブラウザー代表の間での議論で話した。AppleはTouch Eventsを提唱し、それを続けている。

Pointer Eventsは、最初のマウスイベント機構の汎用化としてMicrosoftによって作成され、開発者がデスクトップからモバイルWeb開発へのスムーズな移行を可能にし、タッチ、スタイラス、マウスなど複数の入力デバイスに対応する機能を提供する。 2年前はBlinkチームに取って“非常に魅力的” であったが、“現在の優先順位に適合しない”と彼らは言う。 具体的には:

  • Mobile First。 Pointer Eventsは、“desktop-firstの視点”では意味をなすが、Googleはmobile-firstの世界にいると考えている。結果として、“touch eventsはとどまるためにそこにいて”、Web開発者は彼らのためにコーディングを学ぶ必要があり、Chromeはそれをサポートする必要がある。彼らの望みは“クリーンで、タッチをリッスンするだけの既存のネイティブモバイルプラットフォームのように私たちのストーリーを作る”ことである。
  • パフォーマンス。 GoogleによるとPointer Eventsは、ネイティブモバイルとは違い“ヒットテストと二重イベントディスパッチの負荷”にフレームタイムの~2.5%を消費するという。また“pointer move/enter/leave/over/outハンドラーは、ほとんどのコードでタッチイベントを使っていた場合でも、ページのどこにおいてもヒットテストが必要になる。”
  • フィーチャー。“pull-to-refreshやスクロールのためのドラッグバブリングのようなスクロールインタラクションを許可”しないため、Googleは“スクロールのリッチさを犠牲にしたくはない”と主張している。

Web開発者にとって、2つのイベントディスパッチャーがあるのは厳しいし、Microsoftの代表者は彼らが“Webはあなたが持っている入力デバイスに関係なく動作”させたく、“人々は[たった]ひとつのイベントだけを設定”することを望んでいると言う。

もうひとつの考慮するべき問題は、セッション中に入力種類を変更できることであり、いくつかのWebサイトはタッチイベントが有効になっていると他の入力種類を無視するため、タッチ可能なラップトップなど複数の入力デバイスを持つユーザーにとって問題である。

AppleとGoogleはモバイル開発現場を広くコントロールするため、pointer eventsは苦しい闘いに直面するだろう。 そしてGoogleは、複数の入力デバイスを扱いを改善するために、おそらく“インクリメンタルに進化するTouch Eventsに投資”していくだろう。

現在、jQueryはオープンソース実装の開発を継続しており、開発者はまだPointer Eventsを使う選択肢を持っている。polyfillライブラリは、Chrome 18+, Safari 6+, IE 10, Firefox 14+とOpera 12-14の一部ので動作する。しかしネイティブではIEのみで、Firefoxは開発者フラグでそれをサポートする。

この記事に星をつける

おすすめ度
スタイル

BT