Contenu connexe
Similaire à X pages day発表_20141118 final (20)
X pages day発表_20141118 final
- 1. 1
目的
ノーツコンソーシアムは、お客様、取り扱いユーザー、IBM ICSチームか ら成る非営利団体です。情報交換や研究、セミナーを通じて、会員相互の 共通利益を追求します。
活動内容
各研究会(2014年度例)
•ソーシャル研究会
•Xpages研究会
•DPP研究会
•大阪地区研究会
•九州地区研究会etc…
イベント開催
•情報交換会
•テクニカルセミナー
ノーツコンソーシアムの概要
ノーツコンソーシアムFacebookペー ジ
https://www.facebook.com/notescons
- 14. 1.XPagesってこんなもの
・Notes Domino8.5から提供されている、Domino上で動作する Webアプリケーションを開発するための技術
・Webアプリケーションを構築のためさまざまなコントロールが提供され、 従来のフォーム・ビューなどによるノーツクライアントアプリケーションの構築に 近い感覚で開発が可能
・JavaScript、Cssのほか、JavaScriptを使用してノーツオブジェクトを操作を可 能とするServerSideJavaScript(SSJS)や@関数が使用できるので、 Lotus Scriptや式言語の知識がある方になじみやすい
・今までに蓄積されたノーツDBのデータをWeb上で利用するための1stチョイス
14
- 17. 2.初めてのXPages(困惑編)
メニュー
1.当然必要ですよね、JavaScript。
クライアントサイド(CSJS)とサーバーサイド(SSJS)ってどう違うの?使い分けは?
2.なんかエラーでた。デバッグってどうやろう。
3.既存のフォームに仕込まれた@式が使いたいんだけど。
4.競合ってどう処理するの?
5.URLでファイルダウンロードリンクを貼りたい。
でもファイル形式によってダウンロードしたり、開いたり。ダウンロードしたいんだけど・・・
6.ロードバランサーなどで代表アドレスがあると・・・
17
- 22. 2.初めてのXPages(困惑編)
2. なんかエラーでた。デバッグってどうやろう。(つづき) ■SSJS:(つづき) ・Domino9から搭載されたSSJSデバッガーを使用することも出来ます。 SSJSデバッガーは変数のほか、セッション変数などの参照も出来ます。 サーバNotes.iniに設定する必要があります。 注意事項: (1)同一サーバー上で一人しかデバッガーは使用できない。 (2)サーバへの負荷が高い、かつデバッグしている際は他の ユーザが利用できない。 >運用サーバーで開発している場合、 または1サーバーを共有で開発している場合は Designerのプレビューでも利用できる(はず)。
22
- 31. ライブラリ化のルールが必要
•ルール化にあたって
•何でも“common.js” は要注意!!
•共通ライブラリは放っておくと巨大化。
•画面表示制御系、イベント処理系、マスタ参照系など、目的毎のライブラリ化
•ページ毎に専用ライブラリ(というのもあり?)
•目的、影響範囲が一目瞭然。
•ライブラリの数は増えるけど。。
•メンテナンス頻度、使い回しの容易さを考慮
•共通部品はライブラリに逃がさないで、
•ページ内にガシガシコードを書く方が、使い回しが楽。
- 36. JavaScriptのお作法に則る
•グローバル変数は危険・・・
•グローバル領域=widowオブジェクト
•他フレームワークとの競合・・・
•グローバル領域には直接変数を設定しない。
•他フレームワークと共存する場合など
•変数格納用オブジェクトをグローバル定義して、 プロパティとして変数を設定する
var myGlobal = myGlobal || {};//グローバル変数格納用変数
myGlobal.hoge = “hogehoge”;//グローバル変数の設定
alert(myGlobal.hoge);//グローバル変数の使用
- 39. 《CSSセレクタの活用例》
.formDataTable{
border:solid 1px #000000;
border-collapse:collapse;
width:640px;
}
.formDataTable TD{
border:solid 1px #000000;padding:2px;
}
.formDataTable TD:first-child{
background-color:#EEEEEE;width:20%;
}
.formDataTable TD:nth-child(2){
background-color:#FFFFFF;width:30%;
}
.formDataTable TD:last-child{
background-color:#BBBBBB;width:50%;
}
TABLEタグの
CSSクラス定義
TDタグ共通の
スタイル定義
列毎にTDタグの
スタイルを定義(1列目、2列目、3列目の順)
<xp:table styleClass="formDataTable">
→TABLEタグへのクラス指定のみ。 TDタグへのクラス指定が不要!!
CSSクラスは 「formTable」のみ定義。 各セルのスタイルはセレ クタによる指定。
- 40. その他
•recycle忘れには注意!!
function doForAllDocuments(nView:NotesView){
varnDoc:NotesDocument,
tempDoc:NotesDocument;
try{
nDoc = nView.getFirstDocument();
while(null !== nDoc){
doForEachDocument(nDoc);
tempDoc = nView.getNextDocument(nDoc);
nDoc.recycle();
nDoc = tempDoc;
}
}finally{
}
}
ビューの各文書を 参照する処理では 必須!!
- 41. その他
•XSPJavaScriptオブジェクトの利用によるコード削減
•http://www- 10.lotus.com/ldd/ddwiki.nsf/dx/Japanese_XSP_Client_Side_JavaScript_Object_Functionをご参 照。
if(window.addEventListner){
document.getElementById("#{id:button2}")
.addEventListner("click",myObj.fnc1,false);
}else if(window.attachEvent){
document.getElementById("#{id:button2}")
.attachEvent("onclick",myObj.fnc1);
}else{
document.getElementById("#{id:button2}")["onclick"]
= myObj.fnc1;
}
これまで、いちいちこんな面倒臭 いことしてたのが。。
XSP.attachClientFunction("#{id:button1}","click",myObj.fnc1);
既に、関数が用意されています。
たとえば、動的なイベント割り当ての場合