2005/05/12

DHTMLセクション

最近発見したのですが、Domino 6.5.1からセクションをDHTMLで提供する機能が備わっているようです。こちらのSPR対応という位置づけになるみたいです。

http://www-10.lotus.com/ldd/r5fixlist.nsf/0/47529bfeabc18af585256e1600527b41?OpenDocument

設定などの詳細はWeb Server: Additions to dynamic HTML generated for sectionsに記述されています。(日本語のリリースノートにももちろん記載されていますが、英語版しか直接リンク貼れないので)


従来までは、セクションは展開すると、いったんWebサーバーにアクセスして、展開されたHTMLを毎回ドミノサーバーが発行していました。

一方、DHTML対応すると、もともと全ての情報をHTMLとしてもらっておき、クリックにあわせてダイナミックに展開されます。この秘訣は、セクション部分をid付きの div
タ グで定義し、その部分(getElementbyID)の表示/非表示(.style.display)をJavaScriptでダイナミックに指定して いるのですが、このためNotesクライアントのセクションと同じようにみえます。従来までも、JavaScriptで関数さえ定義しておけば、同様なこ とも出来たでしょうが、セクションというのはユーザーがリッチテキストの中に書き込むこともあって、多少コントロールが難しかったこともあったと思いま す。Dominoサーバーとしていよいよ標準でDHTML対応したことは素晴らしいことだと思います。(実際問題としては、Notesクライアントユー ザーがコンテンツを作る必要があるため、Web中心の環境ではどこまで有用かというと微妙ですが)


コードもhtml内部に埋め込まれており(というのには賛美両論あると思いますが)、簡単に見ることが出来ます。



<script language="JavaScript" type="text/javascript">

<!--

function _dSectionExpand(sec) {

document.getElementById("cSec"+sec).style.display = "none";

document.getElementById("xSec"+sec).style.display = "";

}

function _dSectionCollapse(sec) {

document.getElementById("xSec"+sec).style.display = "none";

document.getElementById("cSec"+sec).style.display = "";

}

// -->

</script>

<div id="cSec1" style="position:relative; "><a onclick="return _dSectionExpand('1');"><img src="/icons/expand.gif" border="0" alt="Show details for セクション"><font size="2">セクション< /font></a></div>

<div id="xSec1" style="position:relative; display:none;"><a onclick="return _dSectionCollapse('1');"><img src="/icons/collapse.gif" border="0" alt="Hide details for セクション"><font size="2">セクション< /font></a>



クロスブラウザを意識してかデフォルトではオフになっているようですが、browser.cnfを多少変更するだけで簡単に出来るので、ブラウザが特定されている社内環境では積極的に使ってもよいかと思います。

0 件のコメント: