作者: davi
日時: 2009/3/15(08:27)
みなさん  <  こん??は でび@寝言で会議(疲れてんな…) です

vista、入れてはいじって壊し、入れてはいじって壊し、を繰り返して、
先週からずっと、5〜6回インスコしてみました。

ディレクトリ構成のメリケン風ないい加減さとか、リリースが
遅れに遅れて非難されたせいで妥協して製品化せざるを得なかった
だろうワケワカな面も含めて、何となく感覚的には、こんな風味の
設計をしていて、どのくらいダメなのかがおぼろげながら掴めた
ような気がします。

ファイル検索システムが実用になるのかどうかが一番心配です。
古い一太郎ファイルをlhz形式でアーカイヴしていても中身の
自然言語でヒットする位だったら、すげー、と思いますけど。

まぁ、一言で言えば、これから全く新規にパソコン買うなら
MacにOooでも入れて、あとはAdobeで固めればそれで良いん
じゃないの?

というのが感想。
Excelマクロも半自動的に移植できるようになったらしいし。

リッチテキストデータも、もうODFで統一。これで良いよね、
という気が…。

Mac OS Xが、OSだけ買ってきて、その辺でパーツ寄せ集めた
AT互換機で動くなら、十分、互角に戦えるかも、という気も
しました。

Mac OS X Snow Leopardが出たらMacmin買ってみようかなぁ。
デフォルトでMeCabが入っているらしいし。

----------------------------------------------
さて、本題。

話題はいまだにDOMであります。

DOMではエレメントの追加、削除、置換ができるのが特徴というか、
ウリというか、まぁ、そんなものだと受け止めています。

さて、そこで、たとえば、

1:サーバ側で巨大なDBを持っていて、サーバ側で、クライアント側
の要求に応じてデータを加工し、サーバ側でXSLTなどによる変換を
かけてクライアントが必要とするデータのみを送出する…という
ような大規模システム的な使い方もできます。

で、今回はそうではなく、

2:個人が一つのディレクトリ内だけで完結したコンテンツを作りたい、
という場合には、どうするのが技術者的な発想では王道なんだべさ?

というのが疑問難であります。

この「一つのディレクトリ内だけで完結したコンテンツ」というのは、
20個位の画像を用意し、その画像をプルダウンメニューで切り替える、
というものなのですが、よくよく考えてみたら、全体の解説文の他に、
個別の画像についての解説文も付けたくなっちゃったんですね。

昔なら、

A:プルダウンメニューを切り替えるときに選択したidやnameを条件
にして、ポップアップウィンドウを出す。

とか、そんな感じで処理したところだろうと思います。
これと類似した方法として、

B:データバインドでhtml文の切れ端をテキストファイルとして
用意して置いて、それを生成しておいたエレメント内に読み込む。

C:InnerHTMLで説明文を用意する。

というのも手かなぁ、と考えました。

確かに、上記A〜Cは、「分業」という観点では一つのメリット
と見て良さそうです。

しかし逆に、両方とも、親ファイルとは別に、それぞれのファイル
を一個ずつ用意しなければならないので、チャンとリレーション
できる設計をしておかないと、メンテが面倒な気もします。

ほとんどのブラウザやウィルス対策ソフトでポップアップ
ウィンドウは何やら毛嫌いされているし、データバインドは
IE固有の非汎用機能だった気がするし、W3Cの方針を考えると、
今更InnerHTMLつーのもどうよ?…と。

そこで、別の方法として、親ソース内に全部書いて置いて、
クライアントは実は一気に読み込む。
んで、クライアントの操作次第で、必要に応じて、そこを表示する。
というアプローチなのかなぁ…と思いました。

例えば、

D:replaceChildしないで、プルダウンメニューを切り替えるときに
選択したidやnameを条件にして、マウスオーバーで白塗り100%の
エレメントを表示域全面に「重ね書き」するようにして、そこに
解説文を書き、z-indexで最前面に表示する。

というのも手かもしれません。或いは、もっとシンプルに

E:あらかじめ読み込み、裏に隠して置いたelementを、replaceChild
で表示させる。

というような、方法。

でも、これだと、普通に考えると

var str = "<b>hoge</b>";
document.write(str.stripTags());

みたいに、各説明をズラズラとstrに格納して吐き出させるような実装
になりそうな気がします(書き方にもよるんでしょうけど)。
strの中身がやたらに長いのも、大昔のPerlのcgiみたいで、挙動時に
表示される「見た目」の想像が付きにくくて、ちょっとどうよ?という
気もするわけです。

また、DもEも、クライアントにメモリ富豪的な要求をするやり口に
思えて、そんなんで良いのかなぁ…という気がします。

---------------------------

とまぁ、サーバ側でのXSLTなどによる加工・変換などの大規模な場面とは
異なる場で、DOMはどのような思想で受け止められるべきなのか?

特に、element.replaceChildなり、element.appendChild なりってのですね。
これらにより、我々は、タグを付け加えられるようになりました。

しかし、その中身は外部ファイルとして保持するのを前提とする考えで
あるべきなのか、内部に変数へぶち込む宣言として保持しておく考えで
あるべきなのか…。

この辺が、割合に曖昧というか、DOM入門本やWeb上のDOM解説ページなど
では、見なかった事にしてしまって、扱わない傾向があるような気がして
なりません。

これは、例によって、私の単なる勉強不足なんでしょうか…。

この辺りについて、諸賢の「テツガク」なり、「コーディングの知恵」なり
をお教え願いたい、と…。こういうことであります。

でび  http://davi.txt-nifty.com/1984/