BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Chrome 39はBeacon APIとES6 Generatorsを提供する

Chrome 39はBeacon APIとES6 Generatorsを提供する

ブックマーク

原文(投稿日:2014/11/25)へのリンク

GoogleのGoogleのChromeチームはWebアプリケーションマニフェスト仕様、Beacon API、ES6ジェネレーターのサポートを含む安定版のChrome 39をリリースした

Chromium Dashboardによると、Webアプリケーションマニフェスト仕様は、"JSONベースのマニフェスト"を定義する。

...Webアプリケーションに関連づけられたメタデータを置く中心的な場所を開発者に提供する。これにはWebアプリケーションの名前、アイコンへのリンク、並びにユーザーがWebアプリケーションを起動したときに開くのに適したURLが含まれるがそれだけに限らない。

マニフェストはまた、(フルスクリーンなど)アプリケーションのユーザーエージェントによる表示のされ方だけでなく、Webアプリケーションのデフォルトの方向の宣言を開発者が指定することができる。

安定版のChrome 39リリースではまた、"サイト開発者がユーザーエージェントからWebサーバーに小さなHTTPデータを非同期で転送する相互運用することができる手段として"定義されるBeacon APIを提供する。

Googleの開発者プログラムエンジニアのEwa Gasperowicz氏は、HTML5 RocksにおいてChrome 39でbeaconデータの送信という記事でBeaconの詳細を説明した。

Gasperowicz氏曰く、Beaconは

ページのアンロードイベントや次のページナビゲーションの性能など他のコードを遅らせることなく、ブラウザーからWebサーバーに小さなデータペイロードでHTTPリクエストを非同期送信する。

navigator.sendBeacon()メソッドは、ブラウザーによってデータができるだけ早く送信されるようにキューに入れるが、ナビゲーションが遅くなることはない。ブラウザーがデータ転送を正常にキューに入れることができる場合はtrueを返す。それ意外の場合はfalseを返す。

またHTML5Rocksにおいて、彼の記事で Also on HTML5Rocks, in his article Generators: the Gnarly BitsGoogle developer relations engineer Jeff Posnick describes generators as:

値を取り出すために呼び出すことができるnext()メソッドを持つイテレーターを生成する特別な関数である

generator functionでは、yieldキーワードがnext()で値を提供する。yieldを使用するとgenerator functionの実行が中断して、再びnext()が呼び出されるまで状態を保持し、他の値(またはgenerator functionの終了)するまで、コードが継続される。

ES6 generatorsをサポートしたことによりChrome 39で開発者は値のyieldの実行後、停止され、-- 呼び出されて -- 復帰することができるようになる。

Chrome 39ベータの投稿で: JS Generators, Animation Playback Control, WebApp Manifest  GoogleソフトウェアエンジニアであるMounir Lamouri氏は「非同期コードの開発とコールバック関数の依存性を軽減してプロセスを大幅に簡素化する」という。

しかしRedditの議論の中で (現在安定版になった)Chrome 39がgeneratorをサポートしてリリースされたことについて、コミュニティの全員が完全にgeneratorsの利点についてクリアになっているわけではなかった。 However, on Reddit in the discussion Chrome 39 (now stable) ships with generator support, not everyone in the community was completely clear on the advantages of generators. ユーザーpiglet24氏は「私には既存のasyncとコールバックやpromisesを使うよりもgeneratorsがシンプルになるとは思えない。これらは、C#のyield returnとほぼ同じに見える。」と尋ねた

ユーザーvoidvector氏は次のように返信した

私はあなたがC#のasync/awaitについてご存じだと思って書きます。

yieldもawaitも現在の関数を未完了状態で実行でき、同じコンテキストで後から復帰可能にすることができる構文です。このようにyieldとその逆を使用してawaitを実装する(コルーチン)フレームワークを書くことができます。「関数の中断と遅延復帰」の抽象概念はContinuationと呼ばれています。yieldとasync/awaitの両方はその形式になります。

generatorsのデモはここで見ることができます: https://github.com/GoogleChrome/samples/tree/gh-pages/generators

Chrome 39にはまた、Macの64ビットサポートといくつかのセキュリティアップデートが含まれている。Chrome 40の安定版は2015年1月にリリースされる予定だ。

この記事に星をつける

おすすめ度
スタイル

BT