Skip To Content

Améliorer les performances d’affichage du service de carte

Lorsque des clients envoient des demandes d’affichage d’un service de carte à ArcGIS Server, la réponse du serveur est généralement mise en cache par le navigateur et réutilisée pendant un certain temps. Ce comportement aide ArcGIS Server à optimiser les performances d’affichage de votre service de carte. Toutefois, selon la manière dont votre service de carte et les données qui lui sont associées sont utilisés dans les applications, vous pouvez ajuster la durée pendant laquelle le navigateur utilise une réponse figurant dans son cache. Pour cela, il convient d’ajouter la propriété cacheControlMaxAge dans le fichier JSON (JavaScript Object Notation) du service.

Utilisation de la propriété cacheControlMaxAge

Les réponses du service de carte ArcGIS Server incluent un en-tête ETag (balise d’entité) et Cache-Control. La valeur de l'en-tête ETag identifie de façon unique la réponse. L’en-tête Cache-Control possède une valeur d’âge maximal qui informe le navigateur de la durée maximale pendant laquelle il peut réutiliser une réponse à partir du cache du navigateur. Cette valeur est contrôlée par la propriété cacheControlMaxAge.

Lorsqu'une demande est répétée et que l'âge maximal du cache n'a pas encore expiré, le navigateur utilise la réponse mise en cache sans envoyer la demande au serveur. Si l’âge maximal a expiré, le navigateur doit envoyer la demande au serveur et définir un en-tête IF-NONE-MATCH avec une valeur ETag associée correspondant à la réponse présente dans le cache. ArcGIS Server évalue la demande et utilise la valeur ETag pour déterminer si la réponse a changé. Si la réponse du serveur diffère de la copie stockée dans le navigateur, le serveur envoie une nouvelle réponse au navigateur. Si la réponse est identique à la copie du navigateur, le serveur avertit le navigateur de continuer à utiliser la réponse présente dans son cache.

Définir la valeur de la propriété cacheControlMaxAge

En tant qu’administrateur ArcGIS Server, vous pouvez définir la propriété cacheControlMaxAge afin de spécifier la durée pendant laquelle un navigateur est autorisé à utiliser une réponse mise en cache. Le fait de réduire les éventualités où ArcGIS Server doit envoyer une réponse complète permet d’améliorer l’efficacité du cache de votre navigateur, de favoriser l’optimisation de vos applications et d’économiser la bande passante de votre réseau.

La valeur par défaut pour les services de carte est 0. Cela signifie que le navigateur renverra toujours une demande et que ArcGIS Server traitera cette demande et enverra une réponse complète au navigateur si le contenu a changé. Cette valeur fonctionne correctement pour la plupart des applications.

Pour les services de carte avec des jeux de données ou une symbologie qui changent fréquemment, une valeur telle que 5 minutes (300 secondes) est recommandée. Dans les applications avec des animations ou des données temporelles, envisagez d’augmenter cette valeur pour rendre les animations plus fluides.

Pour ajouter la propriété cacheControlMaxAge à votre service et spécifier sa valeur par défaut, procédez comme suit :

  1. Dans un navigateur web, ouvrez le répertoire administrateur ArcGIS Server et connectez-vous en tant qu’utilisateur doté des privilèges d’administrateur.

    L'URL est formatée comme suit http://gisserver.domain.com:6080/arcgis/admin.

  2. Cliquez sur services et choisissez le service de carte à modifier dans la liste Services. Si votre service n’apparaît pas dans cette liste, il se trouve peut-être dans un répertoire sous le dossier racine.
  3. Dans la page Service - <nom du service> (<type de service>), faites défiler l'affichage vers le bas et cliquez sur modifier.
  4. Dans la boîte de dialogue Service Properties (Propriétés du service), recherchez la section "properties" du fichier JSON du service.
  5. Ajoutez la propriété cacheControlMaxAge dans la section et spécifiez sa valeur (en secondes). En voici un exemple :
    "properties": {
      "cacheControlMaxAge": "300",
  6. Cliquez sur Enregistrer les mises à jour.

Sur la page Service - <nom du service> (<type de service>), vérifiez que la propriété cacheControlMaxAge et la valeur que vous lui avez attribuée figurent dans la section Properties (Propriétés).