FileReaderのお試し中 / magicien 

WebGLのソース公開の準備そっちのけで新機能実装中...

ファイルをドラッグ&ドロップで読み込めるようにしようと実装を進めたところ、
FileReaderでのファイル読み込みが非同期でしか出来ないというところで頓挫。
ループを回して、ステータスが変更されるのを待とうとしたところ、
ループ処理が回り続けて、いつまでもファイル読み込みに処理が渡らない...
sleepやyieldが実装されていれば...と思ったら、yieldは既に実装されている?
でもyieldの仕様がかなり怪しい。
結局、yieldを使ってもFileReaderのファイル読み込みに処理を譲ることは出来なそう。

こうなったら根本的にプログラムの構造を直した方が良いかもしれない。
ついでにWeb Workersに対応させて、マルチスレッド化してしまおうかと考え中。
でもWeb Workersも値がコピー渡ししかできないのが不満、というか不安。
わざわざマルチスレッド化して動作が重くなったら凹むなぁ。

追記:
ちょっと実験したら、
RangeError: Maximum call stack size exceeded.
って出たので、Web Workersでファイルのパースは諦め。
でもプログラムはイベントドリブンに書き換えねばなるまい...
HTML5のクラスは使いどころが難しいなぁ。

2011/02/13(Sun) 22:41:48