dans mon xhtml j'ai les suivantes:soucoupe volante (de xhtmlrenderer) demande l'image 4 fois
...
<img src="myImage.jpg" />
...
et je rends comme ceci:
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(XMLResource.load(in).getDocument(), url);
renderer.layout();
renderer.createPDF(out);
le PDF résultant est comme prévu, mais je remarque que l'image (qui n'est incluse qu'une fois dans le xhtml et ne rend qu'une seule fois) est demandée 4 fois. Maintenant, en plus du problème évident du téléchargement de données supplémentaires, ce ne serait pas vraiment un problème pour la plupart des gens.
cependant, je dois mettre en œuvre une « fin sur l'utilisation » cache d'images pour les images dynamiques et cela devient un vrai casse-tête ...
pourquoi ne soucoupe volante ont besoin pour faire 4 demandes de l'image si elle ne le rend une fois?
Peut-être que les en-têtes http contiennent des informations sur la façon de filtrer cela? Je suppose que la première demande est une demande HEAD, que vous ne pouviez pas compter. Sinon, je dirais sthg comme "Après la première demande, la ressource est disponible pour encore 10 secondes" ou plus. – ZeissS
zeiss, ils ne définissent pas d'en-têtes ou de paramètres différents pour identifier le type d'informations qu'ils vont extraire du flux. ils se contentent d'une nouvelle URL (uri) .openStream() 'à chaque fois. cela aurait été utile car je pouvais juste retourner un flux factice qui indique à l'API les informations pertinentes uniquement pour chaque requête et laisser les données réelles pour la dernière requête. Je pourrais faire ceci par l'index de demande cependant, c.-à-d. demande 1 renvoie «JPEG», demande 2 retours ... etc .. re l'idée de 10 secondes, mon approche de la 4ème demande est meilleure pour un certain nombre de raisons. – pstanton
Mais sa * très * dépend de l'implémentation. Postez ceci comme une demande d'amélioration sur la liste de diffusion "itext-questions". À tout le moins, nous pourrions accélérer les appels .openStream(). –