Archive / 2012

jQueryとわたし

 仕事でjQuery Mobileを使っていたのだけれども、色々と困ったことがあったので、自戒を込めてここに書いておく。

 jQuery Mobileが少し癖があるなーと思ったのは、下のあたりくらい。

  1. 基本的にajaxで通信しているので、たまにPostで辛いことが起きたりする
  2. あとはハッシュが潰されているので、ページの中でジャンプしようとすると痛い目を見る

 最初に関しては、たぶんページを移動して、ページの内容を表示しようとするときに、白くなったりするのは如何にもウェーヴ感が出てしまうのが難儀、みたいな発想なんだろうなとは思って、だとするとbody全体をそのまま埋め込んでしまったほうがいいじゃんかね、という感じなんだろうなと思ったりするんだが、油断してheadタグ内部にJavaScriptを設置したりすると、ページのURLを直で叩いたときに動いていたJavaScriptが、ページ遷移したときには動かないというわかりやすいバグを生む。意識の高いJavaScriptの人であるならば、「bodyの最後にJavaScript埋め込んで、体感的にページが先にRenderされるようにしろやボケ」ということになるわけで、その通りにしたら、ページ遷移しても動いたのでよかった。

 あともう一つの問題として、ファイルのアップロードが出来なくなるということも発生して非常にFuckなことになったので、属性にdata-ajaxをfalseにすることによって解決するとか、そういう風にやっていた。

 その辺は、挙動を見ていたら「たぶんそういうことなんでしょうね」と把握しやすくて良かったのだが、問題は2番目で、この辺に関しては、現時点で模索する形になるが、どちらにしろ面倒くさい。

 jQueryのライブラリ自体は、それなりに素晴らしいなあとは思う一方で、こういう風に、よく言えば「あまりにもダイナミックにページの挙動自体を規定してしまうモノ」形になってしまうと正直辛いよなーという気持ちになることは否めない。それは、そのプラグインの中の挙動であって、それ以外では通用しないし、しかしその挙動は、それを使う上において当たり前になっている。

 そのあたりは、何も考えずにjQuery Mobileの前提というものを調べているからとんちんかんなことになっている可能性もある。どちらにしろ、楽しようと思ったら別のところで躓いたりする。そういうものだと思う。