gears+gm
追記
作法に従って書けばぜんぜん落ちないです。
作法に従って書いてないと落ちるっていうだけでした。
以下旧文
ページの中のテキストを取り出してngramでstoreして検索、みたいなのをためしに書こうとしたらcreateWorkerしたときにfxが落ちる。
そのうえWindowsが不安定に。Windowsが不安定になったりするようなアプリケーションは久々。これはGoogleの高度な嫌がらせか?
あと
google.gears.factory.create('beta.localserver', '1.0');
のところ、Googleのドキュメントは1.1と書いてありますが、ダウンロードしてきたやつは1.1だとエラーメッセージコピルの忘れてた。cant create object みたいなことをいわれます。
createWorkerにはjsの文字列を渡すことになってるのは、基本的にjsでスレッドをまたいでオブジェクトにアクセスできないから。だから文字列で関数を渡して向こうで全部実行してもらって終わったら教えてもらうくらいしかできない。Firefoxだといろいろできるけどそんなことするとほかのplatformと非互換になるから最低ラインに合わせた実装になってるんだと思われる。
ワーカスレッド側のonmessageはけっきょく非同期処理になるけどできるっていうのがすごいー。fxとかは中がわかるからいいけどIEでどうやって実現してるんだろう。
落ちまくるのでこれって使い物にならないんじゃないかと思ったけどGoogle Gears を使って Game of Life を作る: その1を見るとそんなことはないのがわかった。落ちるけど使えないことはない。
なーるほどreturnでintとかchar*ならワーかスレッドから値を返せるのか。
おちるのはapply(this)がよくない気がしてきた。
googleのコードを見ると
// setup the entire body of JavsScript code to run in the worker var childCode = String(childInit) + String(childHandler) + 'childInit();'; // runs init function
こういうのをcreateWorkerに渡せって書いてある。
このへんで絶妙のバランスを保ってたりするのかなー...
やっぱりfxごとおちる。ご機嫌とるのが大変そうなので止めます....
|