On ven., 2012-06-29 at 20:19 +0200, Philippe Verdy wrote:
> en fouillant un peu les métadonnées des dizaines de copies de la même
> tuile je vois en fait que toutes ces copies ont été effectuées avec
> des requêtes de type POST en principe non cachables de la façon dont
> elles sont formées, et que même les métadonnées retournées sont toutes
> différentes. Pourtant elles semblent être interprétées comme
> soignifiant "l'image n'a pas changé, continuer à utiliser l'ancienne
> image encore dans le cache).
> 
> En foulliant en mémoire, je vois que toutes ces images s'y accumulent
> et y restent référencées (dans un IFRAME invisible non attaché au
> document). Il s'agirait donc d'un memory leak empêchant les purges de
> données. De plus les cookies de session ne sont pas conservés même si
> on reste connecté, il y a a chaque fois création d'une nouvelle
> session.

Des IFrame et du POST, voilà enfin un peu de précisions, on va pouvoir
avancer.

Il y a des tas de manière de requêter de l'image carto. Deux manières
très courantes sont :
- protocole WMS pour des emprises arbitraires et/ou des données
dynamiques
- pyramide de tuiles avec des adresses du genre Z/X/Y.png

Il se trouve que le protocole WMS est assez riche et surtout très
verbeux. Il arrive alors que l'URL des images avec tous les paramètres
GET ait une taille excessive pour certains navigateurs (IE limite l'URL
à ~2000 caractères de mémoire). Dans ce cas, OpenLayers permet au
développeur d'utiliser une méthode d'envoi basée sur un formulaire dans
une IFrame pour contourner le problème. C'est une solution peu
satisfaisante et tout le monde en est conscient. Elle est à réserver
seulement aux cas (rares) d'extrême nécessité. Les développeurs d'OL
t'écouteront probablement avec intérêt si tu as mieux à proposer.

Cela dit... Il me paraît difficile d'atteindre la taille limite d'URL en
dehors du cas WMS. Et même en WMS, il faut un certain nombre de
paramètres facultatifs pour toucher cette limite. La limite est donc
atteinte seulement dans le cas de cartes fortement paramétrées, donc
très dynamiques et donc non cachable !

Dans ton cas, tu parles de tuiles. Or le tuilage est utilisé
principalement pour favoriser la cachabilité. Comme tu n'as pas jugé
nécessaire de mettre un lien vers l'application que tu analyses, je ne
peux pas en savoir plus. Mais j'ai des doutes quant à l'usage qui est
fait d'OpenLayers par le développeur de cette application. Il ne me
paraît pas raisonnable d'utiliser en même temps une couche tuilée et un
envoi en POST.

Tiens, au fait, comment font les autres frameworks qui sont tellement
mieux pour contourner la taille limite d'URLs de IE ?

Cordialement
-- 
Gilles Bassière - Web/GIS software engineer
http://gbassiere.free.fr/



_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à