Mashup Builder > データサービスとバインド > マッシュアップでのデータサービスの実行 > マッシュアップ内のサービスデータのキャッシュ
マッシュアップ内のサービスデータのキャッシュ
マッシュアップ内でデータの取得に使用されるサービスのデータのキャッシュを有効にできます。キャッシュによってサーバーに対するネットワークリクエストの数が減ることで、パフォーマンスとユーザーエクスペリエンスが向上します。たとえば、サービスが頻繁に実行され、返されるデータは頻繁に変わらない場合は特に、ロードに数秒かかるサービスをキャッシュするとネットワークの使用量を削減できます。キャッシュが有効でプロパティ CacheDuration が設定されている場合、指定した時間が経過してキャッシュが期限切れになるまで、サービスの結果は一時的にブラウザに保存されます。
マッシュアップ内のサービスのキャッシュの有効化
マッシュアップ内のサービスのキャッシュを有効にするには、次の手順に従います。
1. Mashup Builder で、「データ」パネルを開き、キャッシュするデータサービスを選択してそのデータプロパティを表示します。
2. 「データプロパティ」パネルの「アドバンス」で、プロパティ CacheReturnedData の横のチェックボックスをオンにします。
3. プロパティ CacheDuration を使用して、結果を保存しておく時間をミリ秒単位で指定します。
4. 必要に応じて、プロパティ CacheStrategy を使用して、キャッシュストレージのストラテジーを指定します。
5. 特定のパラメータ入力の結果をキャッシュするには、CacheKeyParameters の値のドロップダウンリストからパラメータを選択します。
6. 「保存」をクリックし、「マッシュアップを表示」をクリックします。
ランタイムで、そのサービスが初めて実行されたときにサービスデータがキャッシュされます。プロパティ CacheKeyParameters を使用してサービスに選択した入力パラメータに基づいて返されたすべてのデータがキャッシュされます。CacheDuration で設定した時間が経過するまでは、サービスが再度実行されると、保存されているキャッシュからデータが取得されます。
キャッシュストラテジーの選択
プロパティ CacheStrategy を使用して、キャッシュされたデータを次の 2 つの方法のいずれかで保存できます。
「マッシュアップインスタンス」 - 現在のマッシュアップインスタンスの一意の識別子に基づいてキャッシュキーが生成されます。このストラテジーを使用した場合、マッシュアップのインスタンスごとに別個のキャッシュが作成されるので、エンティティとサービスが同じであっても、マッシュアップインスタンスごとに異なるデータが表示される場合に便利です。
「マッシュアップ名」 - マッシュアップ、エンティティ、サービス名に基づいてキャッシュキーが生成されます。コレクションウィジェットなど、マッシュアップの複数のインスタンスに同じデータが表示されることが想定されている場合や、マッシュアップがほかのマッシュアップ内に埋め込まれている場合に、このストラテジーを使用します。このストラテジーはインスタンスキャッシュほど個別化されておらず、キャッシュは同じマッシュアップのすべてのインスタンスで共有されます。
サービスキャッシュのプロパティ
次の表に、「データプロパティ」パネルのサービスに使用可能なキャッシュプロパティを示します。
プロパティ
説明
ベースタイプ
デフォルト値
CacheReturnedData
サーバーから返されたデータをキャッシュするには、これを有効にします。
BOOLEAN
False
CacheDuration
キャッシュされたデータを保持する時間をミリ秒単位で設定します。データがキャッシュされている場合、この時間が経過した後でのみ、サーバーから新しいデータが取得されます。
INTEGER
CacheStrategy
キャッシュの保存方法を制御します。キャッシュされた結果を「マッシュアップインスタンス」または「マッシュアップ名」に基づいて保存できます。
STRING
マッシュアップインスタンス
CacheKeyParameters
ドロップダウンリストが開き、キャッシュキーの生成に使用する入力パラメータを選択できます。サービス入力パラメータを選択すると、その入力でのサービスの結果がキャッシュされます。
STRING
MaxResultSets
データサービスで保存する結果の最大数を制御します。入力パラメータが更新されると、新しい結果がキャッシュされます。最大数に達すると、最も古い結果が削除されます。
INTEGER
10
これは役に立ちましたか?