Skip to main content

マップ サービスの表示パフォーマンスの改善

クライアントが ArcGIS Server にリクエストを送信してマップ サービスを表示するときに、通常はサーバーからの応答がブラウザーによって一定期間キャッシュされ、再利用されます。 この動作によって、ArcGIS Server はマップ サービスを最高品質で表示することができます。 ただし、アプリケーションでのマップ サービスと関連データの使用方法に応じて、ブラウザーがキャッシュされた応答を使用する期間を調整できます。 これには、サービスの JavaScript Object Notation ファイル (JSON) に cacheControlMaxAge プロパティを追加します。

注意:

このヘルプ ページで説明されている設定は、マップ サービスに適用されます。 フィーチャ サービスに対して cacheControlMaxAge プロパティを設定するには、「フィーチャ サービスとクライアント アプリケーション」をご参照ください。

cacheControlMaxAge プロパティの使用方法

ArcGIS Server マップ サービスの応答には、エンティティー タグ (ETag) ヘッダーとキャッシュ コントロール ヘッダーが含まれています。 ETag ヘッダーの値は、応答の一意の識別子です。 キャッシュ コントロール ヘッダーには、キャッシュから応答を再利用できる最大期間に関する情報をブラウザーに提供する max-age 値が含まれています。 この値は、cacheControlMaxAge プロパティによって制御されます。

リクエストが繰り返された場合、キャッシュの最大期間の期限が切れていなければ、ブラウザーは、サーバーにリクエストを送信しないで、キャッシュされている応答を使用します。 キャッシュの最大期間の期限が切れている場合、ブラウザーは、リクエストをサーバーに送信し、キャッシュ内の応答に対応する ETag 値を使用して IF-NONE-MATCH ヘッダーを設定する必要があります。 ArcGIS Server は、リクエストを評価し、ETag 値を使用して、応答が変更されているかどうかを判定します。 サーバーからの応答がブラウザー上のコピーと異なる場合、サーバーは新しい応答をブラウザーに送信します。 応答がブラウザー上のコピーと同一である場合、サーバーは、キャッシュ内の応答を引き続き使用するようにブラウザーに警告します。

cacheControlMaxAge プロパティの値の定義

ArcGIS Server 管理者は、cacheControlMaxAge プロパティを定義して、ブラウザーがキャッシュされた応答を使用できる期間を指定できます。 ArcGIS Server が完全な応答を送信する必要性を軽減することによって、ブラウザーのキャッシュを効率化し、アプリケーションを最適化し、ネットワーク帯域幅を節約することができます。

マップ サービスのデフォルト値は 0 です。 これは、ブラウザーが必ずリクエストを再送し、ArcGIS Server がそのリクエストを処理して、コンテンツが変更されている場合に完全な応答をブラウザーに送信するということを意味します。 このデフォルト値は、ほとんどのアプリケーションで有効に機能します。

データセットやシンボルが頻繁に変更されるマップ サービスの場合、5 分 (300 秒) などの値を指定することをお勧めします。 アニメーションなどの時間に対応するデータを使用するアプリケーションでは、アニメーションをより滑らかに表示するために、この値を増やすことを検討してください。

cacheControlMaxAge プロパティをマップ サービスに追加してデフォルト値を指定するには、以下の手順を実行します:

  1. Web ブラウザーで ArcGIS Server Administrator Directory を開き、管理者権限を持つユーザーとしてサイン インします。

    URL の形式は、http://gisserver.example.com:6080/arcgis/admin です。

  2. services をクリックして、変更するマップ サービスを Services リストから選択します。

    サービスをリストから見つけられない場合は、ルート フォルダーの下のディレクトリに配置されている可能性があります。

  3. Service - <サービス名> (<サービス タイプ>) ページで下までスクロールし、edit をクリックします。

  4. Service Properties ダイアログ ボックスで、サービス JSON の "properties" セクションを見つけます。

  5. cacheControlMaxAge プロパティをそのセクションに追加して、そのプロパティの値 (秒単位) を指定します。

    次の例では、cacheControlMaxAge が 300 秒に設定されています。

    "properties": {
      "cacheControlMaxAge": "300",}
    
  6. Save Edits をクリックします。

Service - <サービス名> (<サービス タイプ>) ページの Properties セクションで、cacheControlMaxAge プロパティと、それに指定した値が表示されていることを確認します。