« プロモーションとアフェリエイト | トップページ | 振る舞い分離 JavaScript ライブラリ一覧(途中) »

2006-06-10

続 JavaScript ソースが HTML から消える日

なんか、はてなブックマーク経由で、突然、昔のエントリー(JavaScript ソースが HTML から消える日)にアクセスが集中しているのに気づいて、急遽、フォローアップ エントリーをアップすることにしました。あのエントリーを書いてからまだ半年ですけど、あの時点で僕が気づいていなかったことも幾つかありましたし、何より状況が随分変化してます。

手みじかにおさらいしておくと、「JavaScript ソースが HTML から消える日」で紹介したのは、Ben Nolan 氏が開発した behaviour.js という JavaScript ライブラリです。このライブラリは、関数の実行場所を、外部 js ファイル内で CSS セレクタを使って指定することができ、これによって従来 HTML 中に埋め込んでいたイベントハンドラ部分も含め、文書構造(document structure → HTML の役割)と振る舞い(behaviour → JavaScript の役割)のほぼ完全な分離をお手軽に実現できるようになったというお話でした。

ところがその後、似たようなライブラリが相次いで公開されたり、既存のライブラリに同様の機能が追加されるなどで状況が変化してきています。behaviour.js 自身も、その後 Google Groups を中心に、対応セレクタの問題、メモリリークの問題、prototype.js など他のライブラリとの連携の問題、behaviour.js v2 の機能実装の方向性の問題など、さまざまな問題が上げられています。

あとで対応ブラウザと対応セレクタ、ライセンスの一覧をアップしますが(2006-06-11: 「振る舞い分離 JavaScript ライブラリ一覧(途中)」をアップしました)、とりあえずは現時点で把握している選択肢だけでも挙げておきます。

  1. behaviour.js
  2. getElementsBySelector
  3. cssQuery()
  4. jQuery の $() 関数。(参考: jQuery - PrototypeにインスパイアされたJavascriptライブラリ
  5. prototype.js v1.5 に $$()関数 が追加。ただしかなり重い..。(2006-01-18)

「構造(HTML)と振る舞い(JavaScript)の分離は前からできたんじゃないか?」という指摘を受けました。ご説ごもっともです。確かに behaviour.js によって「完全に分離できるようになった」とするのは、誤解を招きかねない表現ですね。というわけで、早速、訂正しておきました。

ただ、構造と振る舞いの分離を、JavaScript の DOM などを使って以前からやってきた方もいらっしゃるでしょうが、この手のライブラリは、(1) (個体差はあるものの)クロスブラウザ対応でコーディングされていること、(2) 使い回しが効くような(比較的)単純かつ堅牢な設計になっていること、(3) (CSS セレクタや XPath で実行場所を指定するなど)誰もが容易に導入できるような仕様にしていることの3点において優れています。いわずもがなですが、個人用途でコーディングするのと、プロを含む幅広い人に利用してもらえるようにコーディングするのとではわけが違います。僕などは怠け者もいいところで、(1)・(2) が面倒でそれまで放置していた上(というより、JavaScript を使わない方向に逃げていた)、(3) なんかは特に JavaScript では考えもしてませんでしたので、ホントは偉そうなことを言えた立場ではないのですけど..。(^_^;)ゞ

|

« プロモーションとアフェリエイト | トップページ | 振る舞い分離 JavaScript ライブラリ一覧(途中) »

[Web]JavaScripts」カテゴリの記事

コメント

なんとなく、はてなブックマークを眺めにいったら、こんなコメントがブックマークに..。

# 2006年06月10日 niyagawa plaggger, javascript 空気読めてない

思わずギクっとしましたが、調べてみると、いわゆる bot と呼ばれる自動巡回スクリプト(誤解を恐れずに平たくいえば、ネット上を徘徊する仮想人格プログラム)みたいですね。はてなブックマークの世界では一応、それなりに知られているのかな?僕ははじめて知りましたけど。興味のある人は是非、id:niyagawa 氏のブックマークのコメントをたどってみてください。「ふいて」ますよ。(笑)

それにしても、当人としては「こりゃ、ドキュメント類をイチから洗い直しか?!」と真剣に考えされましたよ。(^v^;;ゞなにせ、最近のこの分野の動向は、個人ではちょっと追いきれないくらい速すぎますから。

なるべく気をつけてはいますが、もし万一、ズレた部分や漏れとかがあれば、いつでも、どなたでもご指摘歓迎です!!(^o^)/

投稿: ゆう | 2006-06-10 18:55

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/15394/2155468

この記事へのトラックバック一覧です: 続 JavaScript ソースが HTML から消える日:

» JavaScript ソースが HTML から消える日 [我的春秋]
イベントハンドラーも含め、HTML のソースから JavaScript ソースを完全に分離できてしまう JavaScript ライブラリ "behaviour.js" の紹介。HTML 内で JavaScript 関数を適用する場所は、なんと CSS セレクタを JavaScript ソース内に書き込むことで指定!あまり日本では取り上げられていないようですが、設置も簡単だし、何より HTML ソースが劇的にすっきりするので、少なくとも僕はもうコイツを手放せなくなりそうです! はっきり言います!beh... [続きを読む]

受信: 2006-06-10 17:23

» [JavaScript]Behaviour関連、セレクタ [Collection & Copy]
我的春秋: 続 JavaScript ソースが HTML から消える日 メジャーなものがまとめられています。 上記を見て、 Javascript Behaviors 最後にsがついた改造版。 Faster DOM Queries /moz-behaviors/ Dean Edwardsさんのサイトは、面白いことがたくさんあります。 CSS event:Sele... [続きを読む]

受信: 2006-06-11 18:33

« プロモーションとアフェリエイト | トップページ | 振る舞い分離 JavaScript ライブラリ一覧(途中) »