開発者が開発した応用プログラムは、配布サーバーから毎回ダウンロードするのではなく、ネットワークを効率的に使用するためにキャッシュを使用します。
キャッシュの種類
nexacro platformがサポートするキャッシュの種類は以下の通りです。
キャッシュの種類 | 説明 |
---|---|
none | キャッシュ機能を使用しません。 |
dynamic | サーバーから受信したファイルが更新された時にのみ受信します。 サーバーのファイルが更新されない場合には、Local Cacheファイルを再利用します。 |
session | nexacro platformエンジンを起動する時に1度だけ受信し(もしもLocal Cacheファイルと一致すれば再利用)、該当のエンジンが終了するまでLocal Cacheファイルのみを使用します。 |
static | サーバーから1度でも受信したこのとあるファイル対し、nexacro platformエンジンの再実行と関係なくLocal Cacheファイルのみを使用します。 このため、再受信したい場合にはバージョンアップしてください。 |
cachelevelを指定しなかった場合、デフォルト Cacheプロパティは Dynamicに適用されます。
プロパティ値が「static」の場合、キャッシュファイルをローカルストレージに保存することになりますが、ウェブブラウザの機能制限によって、ローカルストレージが使用できません。それで、HTML5バージョンを使用している場合には、プロパティ値が「static」の場合にも、「session」で動作します。
HTML5バージョンを使用する場合には、プロパティ値が「none」であれば、ブラウザのキャッシュを使用しないのが正常です。Firefoxを使用する場合には、ブラウザのキャッシュを使用する症状がありますが、この症状はFirefoxのバグです。
HTML5バージョンのアプリケーションがMS IEから実行される場合、nexacro platformの内部で利用するキャッシュメモリよりも、インターネットエクスプローラのキャッシュが優先動作する場合があります。 ウェブブラウザのキャッシュオプションが「自動的に確認する(A)」であるときに、サーバーから変更されたJavaScriptファイル(*.js)が更新されない現象は、制約事項です。
ブラウザを新たに起動したり refreshする動作では、製品が管理するメモリ上の cacheがすべてクリアされるため、session / dynamic / static設定の場合、設定値とは無関係にブラウザの動作に依存するようになります。
nexacro studioで「Launch Project」または「Quick View」メニューを使用してRuntimeを実行する場合には、typedefinitionに設定されているService-cachelevel値を無視してnoneに動作します。
(cachelevelプロパティの設定値が変更されることではありません。)
nexacro platformで画像を処理するときには、画像表現に関連する機能(size、stretchなど)とパフォーマンス上の理由で使用ブラウザのキャッシュ設定に従う動作をするように設計されました。
(プロジェクトserviceグループに設定されたcachelevelとは別の動作です。)
ExcelImportObjectまたはExcelExportObjectを使用してExcelファイルをインポートまたはエクスポートする場合には、指定されたcachelevelプロパティ値に関係なく、無条件noneに動作します。
キャッシュの適用方法
cachelevel
以下は、nexacro studioのType Definition Editor画面です。
Cacheはここで登録したサービスグループにのみ適用されます。
ここでは、“./Base/”というディレクトリにある全てのファイルに対し“none” cacheが適用されることがわかります。
キャッシュの種類を選択します。
この他にもこの画面でバージョンを設定し、staticである場合も追加受信ができるようにすることができます。
Script
application.services["Base"].set_cachelevel("none" )
checkversion
ADLのcheckversionプロパティ値を「true」に設定すると、製品のバージョンや指定されたversion値を変更した際に、強制的にキャッシュを適用しないようにすることができます。
checkversionプロパティ値を「true」に設定した場合には、generateを行う際に生成されるコードの一部が以下のように変更されます。
QuickView.html, index.html, popup.html
nexacro platformのライブラリ・スクリプトとADLファイルを呼び出します。その際に、URLパラメータ(Query String)が追加された状態で呼び出します。
nexacro platformのライブラリ・スクリプトでは、製品のバージョンをURLパラメータとして使用します。
ADLファイルでは、ADLのversionプロパティ値をURLパラメータとして使用します。
製品のバージョンは、別途入力しません。
インストール済のnexacro studioのバージョンに基づいて設定されます。
<meta http-equiv="pragma" content="no-cache"> <script type="text/javascript" src="./nexacro14lib/framework/SystemBase.js?version=14.0.1.1210"></script> ... <script type="text/javascript"> function oninitframework() { application.load("Hello_nexacro", "Hello_nexacro.xadl.quickview.js?version=1.0.1");
Formファイル呼び出し
ADLファイルのロード後、Formファイルの呼び出し時に、TypeDefinitionのサービスグループで指定したversionの設定値をURLパラメータとして使用します。
サービスグループからversionを新たに設定した場合には、cachelevelの設定値は無効となり、「none」として動作します。
ネットワーク通信状況を確認すると、versionの設定値を変更した際にキャッシュされないことが確認できます。