Il y a bien le sharedURLCache et la possibilité de le réduire au minimum ou à rien du tout, mais ça ne suffit pas si la page chargée contient des éléments secondaires (images notamment). Tout se passe comme si le webkit disposait d'un autre niveau de cache pour les objets que l'on peut gérer sur Mac avec les classes absentes d'iOS (WebResource par exemple).
J'en arrive à me demander si les images elles-mêmes n'ont pas un cache de backing-store quelque part.
J'ai essayé de bricoler à la volée en supprimant carrément les caches, les prefs, le dossier WebKit de l'appli... rien n'y fait. Le html de base est bien rechargé à chaque fois, mais les éléments secondaires de la page sont toujours repris en local jusqu'à ce que l'appli quitte.
Quelqu'un a une idée ? B.
Cyril
> --
> You received this message because you are subscribed to the Google Groups "CocoaHeads France" group.
> To post to this group, send email to cocoahea...@googlegroups.com.
> To unsubscribe from this group, send email to cocoaheads-fra...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/cocoaheads-france?hl=en.
>
Cet article pourrait t'aider à résoudre ton problème je pense : https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Concepts/CachePolicies.html#//apple_ref/doc/uid/20001843-BAJEAIEE
Nico
Il y aurait bien le fait d'agir coté serveur, mais j'imagine que ce n'est pas possible. En rajoutant un timestamp bidon derrière chaque url d'e ressource, du genre moncss.css?2012323094374
Cet article pourrait t'aider à résoudre ton problème je pense :https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Concepts/CachePolicies.html#//apple_ref/doc/uid/20001843-BAJEAIEE
J'ai prototypé le problème, il faudrait report un bug concernant ce comportement non?
Il me semble logique que si on spécifie une cache policy au niveau de la requête de la page web cette cache policy doit s'appliquer à toutes les sous-requêtes. Qu'en pensez-vous?
Ou alors je crois qu'il est possible d'intercepter les accès au cache dans le delegate de la requête. À moins que là aussi ça ne s'applique que sur la requête "mère" ?!
Nicolas VERINAUD
STA WebDev & Apple
Sent from my iPhone
On 16 févr. 2012, at 09:40, Cyril Godefroy wrote:Il y aurait bien le fait d'agir coté serveur, mais j'imagine que ce n'est pas possible. En rajoutant un timestamp bidon derrière chaque url d'e ressource, du genre moncss.css?2012323094374Non hélas, impossible d'agir côté serveur. Bien sûr ça aurait été plus simple...
Mettre un proxy ?
J'ai prototypé le problème, il faudrait report un bug concernant ce comportement non?
Il me semble logique que si on spécifie une cache policy au niveau de la requête de la page web cette cache policy doit s'appliquer à toutes les sous-requêtes. Qu'en pensez-vous?
Ou alors je crois qu'il est possible d'intercepter les accès au cache dans le delegate de la requête. À moins que là aussi ça ne s'applique que sur la requête "mère" ?!
Dans la méthode delegate
"webView:shouldStartLoadWithRequest:navigationType:" le paramètre
"request" est en fait mutable si tu regardes bien au runtime : plus
qu'un NSURLRequest indiqué par la signature c'est un
NSMutableURLRequest en vrai.
À partir de là tu peux modifier toutes les requêtes de ta webView
avant qu'elles ne soient envoyées — et donc pas que la requête
initiale — et modifier les politiques de cache utilisées pour chaque
requête.