TypeScript+Parcel
WebWorkerでModule(ES6)を

投稿日:

WebWorkerと通常のJavaScriptで処理を共有しようした所、WebWorkerはES6のモジュールに対応していませんでした。ES6を使わない、共有を諦めてWorker専用処理にする、などいろいろ考えたのですがモージュールバンドラーを導入することにしました。有名なのはWebpackですが設定が面倒なので、設定不要を売りにしているParcelというバンドラーを採用することに。公式ページを見ながらインストール、実行まで5分ほどで完了、設定不要で簡単でした。ただ、 Parcelの開発用サーバーの挙動がなんか怪しいので、サーバーはこれまで通りVSCodeのLive Serverを利用しています。

続きを読む TypeScript+Parcel
WebWorkerでModule(ES6)を

Rust(wasm)+TypeScript
WebWorkerでZipファイル展開、ファイル読み込み効率化

投稿日:

複数のファイルを読み込むことが増えてきたので、ファイル読み込みの効率化について考えてみました。サーバーや回線が良ければ、複数同時に読み込み要求を出せばよいのですが、実際は複数ユーザーの同時アクセスや回線の制限があるため無制限にというわけにはいきません。なので昔から使われていて効果の大きいファイルを1つにまとめる方法を実装してみます。この方法は消費メモリが増える欠点があるので、データ圧縮した状態(Zipファイル)でメモリに保存しておき、使用時に展開することでメモリ消費を抑えます。展開にはそれなりの時間がかかるのでWebWorkerで並列処理し、ゲームループなどのアニメーション処理に影響が出ないようにします。展開処理は WebWorker から呼ばれるRust(wasm)の関数で行います。

続きを読む Rust(wasm)+TypeScript
WebWorkerでZipファイル展開、ファイル読み込み効率化