WebWorkersをBackbone.jsで使ってみたい

なんかすごい久しぶりにブログの更新をする気がします。

最近はまた忙しくなりそうな雰囲気がしてきていますが、それでも現場ではかなり好き勝手にさせてもらってるので、実際は結構楽しいです。

そんな現場ですが、今のところ最大の問題は、数万行〜10万行クラスの「グローバルをフルに使った」JavaScriptとの戦いです。ぶっちゃけかなりきついのと、これからの機能拡張が続くことを考えたら、これ以上ひどくなる前になんとかすべきだ、ということで、クライアントサイドMVCの導入を検討することにしました。本当はAltJSまで導入したかったのですが、引き継ぎとかスキルレベルとか、あとは地味に現場のPCのスペックが厳しいので、それはさすがに見送りました。

しました、となっていますが、実際には一部導入していて、どんどん進めていっている状態です。今のところクライアントサイドMVCはかなりの種類が出ていますが、実際大勢としてはEmber、AngularJS、Backbone.jsあたりになると思います。
ただ、現場のJavaScriptは、悲しいかなjQuery 1.4.4というかなり古いもので、バージョンアップはしばらく望めないのです。Backbone.jsとかは1.7以上じゃないと動作しないし、他も何をいわんや、というところでした。

そこで、ソースが短いと評判のBackbone.jsのインターフェースに合わせる形で、jQuery 1.4.4の範囲で動作するようなライブラリを作って、それでMVCをやっています。ほとんど合わせているので、もしもBackbone.jsを本当に導入したとしても、あまりソースを弄らなくても大丈夫なはず、という感じにしています。

WebWorkers

さて、結構前から気にはなっていたのですが、どうにも縁が無かったWebWorkersですが、今回使ってみることにしました。といっても、数値計算とかするようなアプリじゃないので、普通にAjaxをバックエンドで行うような想定です。

実際には、これをBackbone.jsとかで使ってみたいのですが、WebWorkersの仕様上、かなりそれは難しい模様・・・。やはり、JavaScriptファイルを指定しなければならない & jQuery使用不可、というのは結構厳しいです。$.ajax使えませんし。

それならばと、これも最近導入したJSDeferredを利用して、結構それっぽくAjaxを書けるようにもしてみましたが、JavaScriptファイルを指定しなければならない、というのはかなり厳しい感じですね。
ただ、http://blog.livedoor.jp/dankogai/archives/51504379.htmlこんな記事を見付けたので、3年前の記事ではありますが、仕様自体はほとんど変わっていない(と思う)ので、これを利用してもっと活用できる形にしたいと思います。

とりとめも無い上に中身も無い話でしたが、ひとまずこれで。