jQueryを始めてみる; Dom ready
これまでJSライブラリーとしてはYUI2.xを使ってきたのだが、どうもコードが煩雑になって生産性がよくない気がしてならない(自分の技量が低いのは否めないところではある)ので、人気の高いjQueryを試してみようと思う。
EzoGPでMyznalaやSyracavaを始めた頃は、「画面遷移のないアプリ」というものに固執していたのだが、最近は考え方が変わってきている。実際のアプリケーションでは、やっぱりMVC2がゆるがない骨格として残っていて、(うまい言い方が見つからないのだが)味付け的にYUIだとか、そういったライブラリーの恩恵に浴すことが多いし、アーキテクチャ的にも、それが安定していると思う。
GoogleやZoho、Flickrのような、フルにJSを駆使したUIを持つサイトを作る機会は非常に限られていると思う。
自分のような考え方だと、JSライブラリーの肝はDOMとEvent(YUIでもjQueryでも中心となるモジュール)とAjax(XMLHttpRequest)だから、それらが見通しよく書けるものがいい。
IBMのサイトにjQueryのよい紹介記事を見つけたので、それと随分昔に買った「jQueryで作るAjaxアプリケーション;沖林正紀さん著;技術評論社(2008/7)」、jQueryの本家サイト、日本語リファレンスを参考にして、勉強してみようと思う。
本家サイトから
jquery-1.4.2.min.js
をダウンロードして、scripts/に保存。最初のサンプルとして、DOM Readyのイベントハンドラーのサンプルを書いてみる。イニシャルの処理でイベントハンドラーを仕掛けたりする際には必ず使う。
windowのonLoadの前に行うのが、普通だが以下がサンプル。(1)よりも、(2),(3)の方が早く発火する。
コードはモジュールパターンで記述している。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>windowのloadとDOM Readyのテスト</title> <script type="text/javascript" src="scripts/jquery-1.4.2.min.js"></script> <script type="text/javascript">// <![CDATA[ var TestObj = function(){ return{ winReady : function(){ alert('windows is loaded'); }, bodyReady : function(){ alert('body is ready'); }, divReady : function(){ alert('div is ready'); } }; }(); $(window).load( function(){ // (1) TestObj.winReady(); } ); $('body').ready( function(){ // (2) TestObj.bodyReady(); } ); $('div.result').ready( function(){ // (3): (2)と同等。 TestObj.divReady(); } ); // ]]></script> </head> <body> <div class="result"></div> </body> </html>