いっせいの!!細かなつぶやき

細かなことをぽつぽつと呟いてます

MV-VCモデル構想 003

JavaScriptのWorkerを使えば、ユニット毎にスレッドを分けてメッセージで駆動連動する並列処理が出来そうだ。
Web assemblyで使えるのか若干不安だけどw

DOMに関しては子スレッドになるWorkerでは操作できないそうなので、ビューに相当するUI/UXが親スレッドになるのは決定。レスポンスへの要求が相対的に低いから、ここはJavaScriptで書いても良い。
イベントリスナー(コールバック関数)を通じてビューと綿密に連動するが、ほぼスピードを要求されないコントロールも親スレッドが良さげ。ここもJavaScriptで良い気がする。

これと非同期に動くモデル部分はWorker化したい。負荷も有るし、フロントエンドとスッパリ切り離したい。
てことで、コントロールが要求事項をメッセージでポストして、Workerで実装したモデルが「onmessage」プロパティで非同期に受け取り、処理した結果をpostmessageして、親スレッドが「onmessage」プロパティ経由で受け取って関連する処理をする形になる訳だ。
これで「UI/UX」と「モデル」のユニットはほぼ分離出来る。

新しい仕様に伴う機能だし、JavaScriptで出来るからWebassemblyで出来るという保証は無い。
でも試す価値はあるし、簡単な処理を書いて評価してみよう。
「モデル」にrustを使うアイデアは後回しだなw