Skip To Content

Mejorar el rendimiento de visualización del servicio de mapas

Cuando los clientes envían solicitudes a ArcGIS Server para mostrar un servicio de mapas, por lo general, la respuesta del servidor queda en caché en el navegador y se reutiliza durante cierto tiempo. Este comportamiento ayuda a ArcGIS Server a lograr el mejor rendimiento de visualización posible del servicio de mapas. No obstante, según cómo se utilicen el servicio de mapas y sus datos asociados en aplicaciones, puede ajustar el tiempo durante el cual el navegador utiliza una respuesta de la caché. Esto se hace agregando la propiedad cacheControlMaxAge a la Notación de objetos JavaScript (JSON) del servicio.

Cómo se utiliza la propiedad cacheControlMaxAge

Las respuestas de servicios de mapas de ArcGIS Server incluyen una etiqueta de entidad (ETag) y un encabezado Cache-Control. El valor del encabezado ETag es un identificador único de la respuesta. El encabezado Cache-Control tiene un valor max-age que proporciona información al navegador en relación con el tiempo máximo durante el cual se puede reutilizar la respuesta de la caché del navegador. Este valor se controla mediante la propiedad cacheControlMaxAge.

Si una solicitud se repite y no se ha superado la duración máxima del caché, el navegador utiliza la respuesta del caché sin enviar la solicitud al servidor. Si se ha superado la duración máxima, el navegador debe enviar la solicitud al servidor y establecer un encabezado IF-NONE-MATCH con un valor de ETag asociado correspondiente a la respuesta en su caché. ArcGIS Server evalúa la solicitud y utiliza el valor de ETag para determinar si la respuesta ha cambiado. Si la respuesta del servidor es distinta de la copia que hay en el navegador, el servidor envía una respuesta nueva al navegador. Si la respuesta es idéntica a la copia que hay en el navegador, el servidor alerta al navegador para que continúe utilizando la respuesta que tiene en el caché.

Definir el valor de la propiedad cacheControlMaxAge

Como administrador de ArcGIS Server, puede definir la propiedad de cacheControlMaxAge para especificar durante cuánto tiempo se permite al navegador utilizar una respuesta que esté en la caché. Puesto que se reduce la necesidad de que ArcGIS Server envíe respuestas completas, la caché del navegador es más eficiente, ayuda a optimizar las aplicaciones y ahorra ancho de banda.

El valor predeterminado para los servicios de mapa es 0. Esto significa que el navegador siempre vuelve a enviar las solicitudes y que ArcGIS Server procesará las solicitudes y enviará respuestas completas al navegador si el contenido ha cambiado. Este valor funciona correctamente para la mayoría de aplicaciones.

Para servicios de mapas cuyos datasets o simbologías cambien continuamente, se recomienda un valor del orden de 5 minutos (300 segundos). En aplicaciones con animaciones o datos dependientes del tiempo, considere la posibilidad de aumentar el valor para que la aplicación pueda ofrecer animaciones más suaves.

Para agregar la propiedad cacheControlMaxAge a un servicio y especificar su valor predeterminado, se hace así:

  1. En un navegador web, abra el Directorio de administrador de ArcGIS Server e inicie sesión con un nombre de usuario que tenga privilegios de administrador.

    La dirección URL tiene el formato http://gisserver.domain.com:6080/arcgis/admin.

  2. Haga clic en servicios y seleccione el servicio de mapas que desee modificar en la lista Servicios. Si no ve el servicio en la lista, es posible que se encuentre en un directorio debajo de la carpeta raíz.
  3. En la página Service - <service name> (<service type>), desplácese a la parte inferior y haga clic en editar.
  4. En el cuadro de diálogo Propiedades del servicio, busque la sección "properties" del JSON del servicio.
  5. Agregue la propiedad cacheControlMaxAge a la sección y especifique el valor, en segundos. A continuación encontrará un ejemplo:
    "properties": {
      "cacheControlMaxAge": "300",
  6. Haga clic en Guardar cambios.

En la página Servicio - <nombre del servicio> (<tipo del servicio>), compruebe que la propiedad cacheControlMaxAge y el valor especificado aparezcan en la sección Propiedades.