Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第3部 Webアプリケーションの開発> 第15章 UJIタグを使ったプログラミング> 15.3 クライアントスクリプト

15.3.1 クライアントスクリプトの概要

Webcoordinatorのクライアントスクリプト機能は、ブラウザ上で実行するJavaScriptを生成します。 例を示します。この例は入力項目のinputがフォーカスを失ったときに最小・最大のチェックをして、誤りがあればステータスバーにエラーメッセージを表示します。

<uji:form method="post" name="someform">
  入力項目:
  <uji:input name="someinput">
     <uji:validate event="blur" type="int" minInclusive="10" maxInclusive="20" >
        window.status="入力項目には10〜20の整数を指定せよ";
        target.focus();
     </uji:validate>
  </uji:input>
  ....
</uji:form>

ポイント
クライアントスクリプト機能では、JavaScriptを直接記述して任意の動作をさせることができます。 簡単な入力チェックのみの場合はコンポーネントタグを利用すると簡単に記述することができます。

クライアントスクリプト、およびJavaScriptの使用にあたっては、以下の注意事項があります。

・ブラウザの種別によって動作しない場合がある
JavaScriptは言語仕様が制式化されておらず、ブラウザ毎に機能が異なったり、バージョンアップでの非互換が発生する場合があります。また、ブラウザの設定でJavaScriptを禁止にする場合もあり、アプリケーション作成においては、JavaScriptが動作しなくても構わないように設計する必要があります。
・繰り返し項目では書かない
JavaScriptを記述するとサーバからクライアントへのデータ送信量が多くなります。特に繰り返し項目中で使用すると、繰り返し回数分だけのJavaScriptが送信されるため負荷がかかり、また場合によってはJSPのサイズ制約のために動作できなくなります。
ポイント JSPのサイズ制約
JSPの画面はサーブレット化されて_jspServiceメソッドに展開されますが、Javaのメソッドサイズはコンパイル後で64kバイトが上限と設定されており、これを超えると実行不可能となります。
・ビジネスロジックレベルの判断を含んではならない
JavaScriptによってチェック処理をしたとしても、JavaScriptが動作しない環境を考慮してサーバ側のロジックで再度のチェックが必要です。JavaScriptでビジネスロジックレベルの判断をすると、ビジネスロジックをサーバとJavaScriptの双方で持つことになって、保守性が損なわれます。また、JavaScriptは画面毎に記述するため、さらにビジネスロジックの所在が分散することになります。
・UJIタグが生成するHTMLに依存した処理を作成しない
Apcoordinatorのバージョンアップに伴う機能追加や最適化のために、 UJIタグリファレンスに記載の仕様の範囲内で、UJIタグが生成するHTMLパターンが変更される場合があります。 このため、UJIタグが生成するHTMLに依存した処理をJavaScriptで作成すると、Apcoordinatorをバージョンアップした際に動作しなくなる可能性があります。
たとえば、JavaScriptの「elements[通し番号]」形式の記述で入力項目を参照すると、将来のバージョンでUJIタグが生成するHTMLでINPUTタグが追加された場合に、通し番号が変わるため動作しなくなります。
ポイント コンポーネントタグが出力した入力項目の参照方法
コンポーネントタグが生成した入力項目をJavaScriptで参照する方法については、「Tips」の「コンポーネントタグが作成した入力項目をJavaScriptで参照したい」を参照してください。
以上のことを考慮して、クライアントスクリプト、JavaScriptは以下の条件で使用するようにします。
・単純な未入力チェックや文字種チェック等に限定する
必要以上のロジックを持たないチェックに限定します。
・クライアントでのチェックが効果的な場合に限定する
誤りの起きやすい項目など、クライアントでのチェックによる効果が出る場合に限定します。
・Webcoordinatorのクライアントスクリプトを使用する
クライアントスクリプトを使用することによって、JavaScript記述を最低限にすることができます。

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005