このセクションでは、次のトピックについて説明します。
アプレットをキャッシュすると、再度参照する際にアプレットをダウンロードする必要がなくなります。これにより、アプレットの起動時間が短縮されます。Java Plug-in のアプレットによって使用されるすべてのファイルタイプは、現在キャッシュされています。
アプレットキャッシングの新しい方式が提供されました。この方法では、アプレットを配布する際、アプレットが「固定的」かどうかを指定できます。固定的なアプレットは、Java Plug-in によって作成および制御され、ブラウザによって上書きされないディスクキャッシュ内に格納されます。「固定的」なアプレットがダウンロードされるのは、アプレットがサーバー上で更新された場合だけです。アプレットが更新されない限り、常に高速で読み込むことができます。コアビジネスアプリケーションを提供するアプレットは、起動時のパフォーマンスを改善するため、「固定的」なアプレットにする必要があります。
この新機能は、次に示すように、OBJECT/EMBED
タグに、新しい値 cache_archive
、cache_version
、および cache_archive_ex
を含めることによって有効になります。
注:
|
cache_archive 属性には、キャッシュするファイルのリストを指定します。
<PARAM NAME="cache_archive" VALUE="a.jar,b.jar,c.jar">
APPLET タグの archive 属性と同様に、cache_archive 属性の .jar
ファイルのリストには完全な URL は指定されていませんが、常に codebase からダウンロードされます。
cache_version は、省略可能な属性です。使用する場合、この属性にはキャッシュするファイルのバージョンリストを含めます。
<PARAM NAME="cache_version" VALUE="1.2.0.1, 2.1.1.2, 1.1.2.7">
各バージョン番号は、xxxx.xxxx.xxxx.xxxx
の形式になります (x
は 16 進数)。各バージョン番号は、cache_archive 内の各 .jar
ファイルに対応します。
.jar
ファイルを事前ロードできるようにするには、HTML パラメータ cache_archive_ex
を使用できます。このパラメータでは .jar
ファイルを事前ロードする必要があるかどうかを指定でき、オプションで .jar
ファイルのバージョンも指定できます。cache_archive_ex
の VALUE
の形式は、次のとおりです。
VALUE="<jar_file_name>;<preload(オプション)>;<jar_file_version(オプション)>,<jar_file_name>; <preload(オプション)>;<jar_file_version(オプション)>, ..."
オプションの preload
および jar_file_version
タグは、jar_file_name
のあとに「;」で区切って任意の順序で置くことができます。複数のエントリは「,
」で区切ります。
これらのタグを HTML ページ内で使用する方法を次に示します。
<OBJECT .... > <PARAM NAME="archive"VALUE="a.jar"> <PARAM NAME="cache_archive" VALUE="b.jar, c.jar, d.jar"> <PARAM NAME="cache_version" VALUE="0.0.0.1, 0.0.2A.1, 0.3D.22.FFFE"> <PARAM NAME="cache_archive_ex" VALUE="applet.jar;preload, util.jar;preload;0.9.0.AC1, tools.jar;0.9.8.7F"> </OBJECT> |
上の例では、a.jar
は archive
内で指定されていますが、b.jar
、c.jar
、および d.jar
は cache_archive
内で指定されています。b.jar
、c.jar
、および d.jar
のバージョンもそれぞれ 0.0.0.1
、0.0.2A.1
、および 0.3D.22.FFFE
と指定されています。cache_archive_ex
では、applet.jar
を事前ロードするように指定されています。util.jar
も事前ロードするように指定されていますが、バージョンも指定されています。tools.jar
については、バージョンだけが指定されています。
Java Plug-in は、HTML パラメータ cache_archive
で指定されている .jar
ファイルすべてのバージョンが指定されていなければ、バージョンの比較を行いません。cache_archive
が cache_version
なしで使用された場合、cache_archive
で指定されている .jar
ファイルは、HTML パラメータ archive
で指定されている .jar
ファイルとまったく同じように処理されます。事前ロードとバージョンのオプションが指定されていない場合、cache_archive_ex
で指定されている .jar
ファイルも同じように処理されます。
クラスファイルとリソースは、HTML パラメータによって指定された .jar
ファイルから以下の順序で検索されます。
cache_archive_ex
cache_archive
archive
デフォルトでは、cache_version 属性を指定しない場合、以下の状況でアプレットキャッシュが更新されます。
ただし、状況によっては、HTTP/HTTPS 経由で Web サーバーから返される「Last-Modified」値が、アプレットの実際のバージョンと異なる場合があります。たとえば、Web サーバーがクラッシュし、すべてのファイルが復元された場合、サーバー上の cache_archive の変更日付は異なったものになります。この場合、たとえ cache_archive が更新されていない場合でも、すべての Java Plug-in クライアントに対し、cache_archive の再ダウンロードが強制されます。
バージョンの更新を強制する場合、cache_version 属性を使用してアプレットを配備することをお勧めします。
cache_version
を使用する場合、cache_archive に対応した cache_version が、アプレットキャッシュにローカルに格納された cache_version よりも大きいと、アプレットキャッシュが更新されます。更新のトリガーにバージョン番号を使用する場合、実際のバージョン番号が Web サーバーの .jar
ファイルに付属することはありません。実際のところ、更新のトリガーにバージョンを使用するのでない限り、Web サーバー上のアプレットを cache_archive 内のアプレットなしで更新できます。
cache_version を使用することで、Web サーバーに接続して cache_archive の「Modification-Date」おおよび「Content-Length」を取得する必要がなくなります。ほとんどの場合、これによりパフォーマンスが向上します。
固定的なアプレットは、ローカルにキャッシュされますが、元のコードベースおよび署名者が定義したセキュリティーポリシーに準拠します。
Java Plug-in 6 のアプレットは、HTML ファイル内に一覧表示されている JAR リソースを起動するために JNLP Version Download プロトコルを使用できます。バージョン管理は、JarDiff もサポートします。バージョン管理のサポートを使用するには、archive_x
タグを使用します。x は、番号を指定します。archive_x
タグの構文を次に示します。
preload
を使用します。version=
は、jar ファイル要求のバージョン文字列を指定するために使用されます。archive_x タグを使用できるさまざまな方法を、次に示します。
<PARAM NAME="archive_1" VALUE="a.jar, preload, version=2.0+">
<PARAM NAME="archive_1" VALUE="a.jar, preload, version=2.0*">
<PARAM NAME="archive_2" VALUE="b.jar, version=0.0.0.3">
注:cache_archive、cache_version、および cache_archive_ex タグ内の archive_x タグは無視されます。 |
JNLP スタイルのバージョンのサポートを使用するアプレットは、JNLPDownloadServlet を使用してアプレットリソースをホストするようにしてください。JNLP Version Download プロトコルおよび JNLPDownloadServlet の詳細は、「JNLP ガイド」 を参照してください。
.jar
ファイルを、Java Plug-in のキャッシュを使用してキャッシュすることは現在できません。
codebase
に対する相対 URL にする必要があります。cache_archive では、完全指定の URL はサポートされません。java.io.IOException: Caching not supported for
...」は、指定された JAR ファイルの有効期限および最終変更日付を Java Plug-in が Web サーバーから取得できなかったためにスローされます。Java Plug-in が日付情報を取得できない場合、JAR ファイルは使用のたびにダウンロードされます。