WorkerDOM: DOM に対応した同時実行 JavaScript プログラミング

WorkerDOM: DOM に対応した同時実行 JavaScript プログラミング: この記事は Google ソフトウェア エンジニア、Kristofer Baxter による Accelerated Mobile Pages Project の記事 "WorkerDOM: Concurrency for JavaScript programming with the DOM" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。



Web Worker から Document Object Model(DOM)を利用できるようにする JavaScript ライブラリ、WorkerDOM のアルファ リリースについてお知らせします。このライブラリを使うと、ウェブ デベロッパーがパフォーマンスを向上させるためにウェブページのプログラミングを行う際に、広く普及しているマルチコア プロセッサ アーキテクチャを活用できるようになります。WorkerDOM ライブラリは、汎用ウェブ プログラミング向けに設計されていますが、AMP Project でも利用する予定です。この点については、後ほど説明します。

このライブラリの基盤となる Web Worker API は、10 年近く前からウェブ デベロッパーが利用できるようになっていますが、広く採用されてきたわけではありません。その理由の 1 つは、Worker からウェブページ、すなわち DOM の操作を行う主な API が利用できないことでした。WorkerDOM は、この点を改善し、デベロッパーが既存のアプリケーションを簡単に移植できるようにします。これによって、ウェブのマルチスレッド プログラミングが新たな脚光を浴び、今後のユーザー エクスペリエンス向上につながることを期待しています。

これまでの調査で、低費用端末向けシングルコア CPU のパフォーマンスは、ここ数年間でそれほど向上していないことがわかっています。その結果、シングルコアという観点から見れば、モバイル端末は安くなってはいるものの、速くなってはいません。これは、非常に安価な CPU にさえ搭載されているにもかかわらず、デフォルトの JavaScript プログラミングでは利用できない追加のコアを活用するまたとないチャンスです。ウェブのパフォーマンスを実際にネイティブ プラットフォームに匹敵させるためには、この追加のパフォーマンスを解放し、人々が使うさまざまな端末すべてに対して、最新の優れたエクスペリエンスを提供しなければなりません。







Screen Shot 2018-08-21 at 10.45.37 AM
どれ 1 つとして同じモバイル端末は存在しない。

WorkerDOM は、Web Worker 内で完全な DOM 表現を提供することを目指しています。つまり、理想的なケースでは、Worker 環境からでもスクリプトを変更せずに利用することができます。このライブラリの中核にあるのは、TypeScript で書かれた効率的な転送メカニズムです。これは、サーバーでレンダリングした DOM をハイドレート(hydrate)し、ユーザーのアクションに対する反応、アニメーションの実行など、アプリケーションがページを変更する際にその変化を仲介します。WorkerDOM ライブラリの内部処理の詳細や、想定されるユースケースについては、私たちが JSConf US 2018 で行ったプレゼンテーションのスライドをご覧ください。

AMP Conf 2018 でお知らせしたように、AMP Project は AMP ページの作成者が JavaScript プログラミングを利用できるようにする長期的な作業を行っています。WorkerDOM ライブラリはこの取り組みの中核をなし、うれしいことに、今年中に AMP に組み込まれます。WorkerDOM は React、Preact、Svelte などのフレームワークと互換性があり、互換フレームワークは今後も増加することがロードマップで示されています。将来的に、こういったすべてのフレームワークを使って AMP ページを作れるようになるのがとても楽しみです!

本日のリリースは、アルファ リリースです。WorkerDOM を使った実験はできるようになりますが、本番環境で広く使うための準備はまだ整っていません。私たちは、フレームワークやツールの作成者と協力して互換性を確保したいと考えています。そして、できるだけ多くの場所や状況で WorkerDOM を使っていただき、デベロッパー エクスペリエンスを向上させたいと考えています。



Reviewed by Yusuke Utsunomiya - Mobile Solution Consultant, gTech

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)