開発したアプリはサーバーから毎回ダウンロードせず、ネットワークを効率的に使用するためにキャッシュを使用します。
キャッシュの種類
nexacroがサポートするキャッシュの種類は以下の通りです。
キャッシュレベル | 説明 |
---|---|
none | キャッシュ機能を利用しません。 |
dynamic | サーバーでファイルが更新された場合にのみ再度受信します。 サーバーのファイルが更新されていない場合には、ローカルのキャッシュファイルを再利用します。 |
session | アプリの起動時に1度だけ受信しアプリを終了するまでローカルのキャッシュファイルのみ使用します。(アプリの起動時にサーバー上のファイルがローカルのキャッシュファイルと一致する場合にはローカルのキャッシュファイルを再利用します。 |
static | サーバーから1度でも受信したことのあるファイルに対し、アプリを再起動してもローカルのキャッシュファイルのみ利用します。 (ただし、Type Definitionに指定されたサービスグループのVersion情報が変更された場合にはファイルを再度受信します。) |
WREでの実行時の参考事項
「static」に設定している場合は本来キャッシュファイルがローカルストレージに保存されますが、Webブラウザの機能制約によってローカルストレージを使用することができないため、Webブラウザでは「static」に設定している場合でも「session」として動作します。
ブラウザを再起動する際や再読み込みする際に製品側で管理するメモリ上のキャッシュがすべてクリアされるため、「session」、「dynamic」、「static」のいずれかの値に設定している場合には設定値と関係なくブラウザに依存します。
Webブラウザでは設定値が「none」である場合にブラウザのキャッシュを使用しないのが正常動作です。Firefoxでブラウザのキャッシュが使用される現象はFirefoxのバグです。
IEではnexacroの内部で利用するキャッシュメモリよりブラウザのキャッシュの方が優先される場合があります。Webブラウザのキャッシュオプションが「自動的に確認する(A)」である場合、サーバーで変更されたJavaScriptファイル(*.js)が更新されない現象は制約事項です。
nexacro studioでの実行時の参考事項
nexacro studioで「Launch Project」または「Quick View」メニューを使用してNREを実行する場合には、typedefinitionに設定されているService-cachelevel値を無視して「none」として動作します。
(cachelevelの設定値が変更されることはありません。)
コンポーネント、オブジェクトによって異なるcachelevelが適用される場合の参考事項
nexacroで画像を処理する際に、画像表現に関連する機能(size、stretchなど)とパフォーマンス上の理由で使用ブラウザのキャッシュ設定に従い動作するように設計されています。
(各プロジェクトのserviceグループに設定されたcachelevelとは別の動作です。)
ExcelImportObject、ExcelExportObjectによりExcelファイルのインポート、エクスポートを行う場合には、指定されたcachelevelの設定値と関係なく「none」として動作します。
キャッシュの適用方法
以下はnexacro studioのType Definition Editor画面の説明です。
キャッシュは登録されたサービスグループにのみ適用されます。
“./Base/”フォルダ配下の全てのファイルに対しキャッシュが適用されます。
キャッシュの種類を選択します。
各サービスに対してバージョンを設定している場合、staticである状態で再度ファイルを受信することができます。
nexacro.getEnvironment().services["Base"].set_cachelevel("none" )