RailsのAjaxライブラリ
今日の山形は大雨。せっかくなので、Rails付属のAjaxライブラリを試しました。今まであまり興味をもっていませんでしたが、いろいろ考え始めてみようと思いました。
RailsにはWeb2.0的なJavaScriptライブラリが同梱されているので、ひととおり試してみました。
実体は、script.aculo.usとprototype.jsですから、マニュアル等はそちらを参照。Railsのドキュメントには掲載されていないようです。
ただ、それらのJavaScriptを生成するライブラリ-JavaScriptHelper-がRailsから提供されています。そのドキュメントはRailsのAPIリファレンス-ActionView::Helpersを参照。Railsの立場としては、script.aculo.usとprototype.jsの機能を事前に知ってることが前提のようですね。
Ajaxサーバ通信は、このブログでは実装がむずかしいので、今回の紹介は、視覚効果(EffectとDrag&Drop)のところだけにします。
実用的なシステムを作るには、Ajaxやコールバックフックなどが必要なのですが、また別の機会に紹介できればと思います。
■視覚効果、消したり表示したり


1つめのデモのソース:
<script src="path_to/effects.js" type="text/javascript"></script>
<div id="demo1"
onclick="$('msg1').innerHTML='さらばじゃ';Effect.SwitchOff(this)">
<div id="msg1">クリックしてね</div><img src="path_to/me.jpg">
</div>
などなど。※途中、DOMオブジェクト表記を $('msg1')などと書いているのは、prototype.jsの機能。
こちらのページにもっといろんな動きのデモがあります。
■リストをドラッグ&ドロップで並べ替え
- 1.日本沈没
- 2.M:I 3
- 3.ブレイブストーリー
ソース:
<script src="path_to/dragdrop.js" type="text/javascript"></script>
<ul id="movielist">
<li style="background-color:#ddddff">1.日本沈没</li>
<li style="background-color:#ffdddd">2.M:I 3</li>
<li style="background-color:#ddffdd">3.ブレイブストーリー</li>
</ul>
<script type="text/javascript">
Sortable.create('movielist',{ghosting:true,constraint:false})
</script>
全体的に思うのは、
なんでたったこれだけでこんなことができるんじゃ・・orz。
簡単で面白いです。まだの人は試してみてはいかがでしょう。
ただ、動きが面白いからといって乱用すると、ケムたくて田舎くさいページになってしまうので、やめておきましょうね!(w
こんなもの、1回みたら飽きちゃいますから・・。
以下、余談です。長いけど。
実はこういうの、あまり興味なかったので、雨でも降らなければw、触ってみようとは思ってませんでした。Flashやアプレットで、もっと高度なことができるし、わざわざ難しいことをやらなくたって・・・と思ってたからです。
でも一度使ってみたら、とても簡単で使いやすく、ちょっと面白くなってきました。コレで何ができるのか、いろいろ考えてみたくなります。
私は、今のAjax熱には、ちょっと否定的です。
実装技術うんぬんとかじゃなくて。
例えば、ドラッグ&ドロップでショッピングできるサイトって、そんなに使いやすくはないよなー。いちいち、商品をグイッと引っ張るなんて・・・。そういうサイトが今までなかったのは、(たぶん)技術的にできなかったわけではなくて、使いづらいからでしょう。
Ajaxを組み込んだパッケージとか、次々リリースされてますが、ただのインパクト勝負なら、あんまり意味はないのではないでしょうか。だって、普通の人がAjaxを見て、「この動きかっこいいー」なんて、思わないですよ。騒いでるのは、たぶんIT業界の人だけ。
GMailの操作性を「すごい!」と感じる人は、全人口の何割だろう?
(それに、GMailの戦略は、もっと違うところにあるんですよね?)
小手先の動きばかりでなく、もうちょっと考えたほうがいいのではないかと思います。まだまだ試行段階なのかもしれませんけどね。
ところで、Web2.0という言葉、最近では「口にするのが恥ずかしい」言葉になってしまったようです。その気持ちは、なんとなくわかります。SOAとともに、去年の流行語は、なぜだか、ちょっと・・・。
もちろん、SOAもWeb2.0も、その意味を深く考え、真摯に取り組んでらっしゃる方は大勢います。その一方で、Web2.0の盛り上がりに便乗して、なんでもかんでも「○○2.0」が出現して、
「システム開発2.0部」作るぞ!
なんて言ってみたり(冗談でしょうけども)する人もいます。
「インターネットをクリック」する私の母と、あんまり程度がかわらない。
やっぱり、もうちょっと落ち着いて考えた方がいいんだと思います。
Web2.0の世界観、SOAが解決すること、Ajaxだからこそできること。
まあ、実際さわってみないと考え始めないので、さわってみて良かったと思います。山形の厳しい気象と、暇な時間に、感謝。

