2016-08-20 2 views
0

Mon application OSX tente de charger une page Web dans une vue Web. J'ai besoin de mettre en cache la page Web pour le laoding plus rapide de la page entre les lancements successifs de l'application.Les ressources liées de grande taille ne sont pas mises en cache lors du chargement d'une page à l'aide de NSURLRequest à partir d'une application OSX

Tous les fichiers de ressources (js/css/images) liés à la page sont mis en cache à l'exception d'un fichier js de 3 Mo de taille. J'ai vérifié cela dans le fichier cache.db et aucune entrée liée à ce fichier particulier n'est présente dans la table associée.

J'ai essayé beaucoup de choses, y compris

  • augmenter la capacité de mémoire cache
  • augmenter le temps de délai d'attente pour la demande
  • modifier les paramètres de la politique de cache

La solution identifiée est à demande explicitement le fichier js et le stocke de force dans le cache. Cela va correctement mettre en cache le fichier et lors des lancements suivants, il n'y a qu'une activité réseau minimale. Ce n'est évidemment pas une solution. Je ne suis pas sûr si la taille du fichier importe, car je n'ai trouvé aucune référence liée à la taille dans la documentation NSURLCache. Une autre observation est que le délégué 'didFinishLoadForFrame' est appelé avant le chargement des ressources liées.

reconnaissant de toute aide à cet égard,

Merci,

Jimesh

Répondre

0

Oui, la taille du fichier. Le comportement standard du cache est de ne pas stocker tout ce qui est supérieur à cinq ou dix pour cent de la taille du cache. Augmentez la taille du cache d'au moins deux ordres de grandeur plus grand que ce que vous mettez en cache, et cela "fonctionnera probablement".

Si cela ne fonctionne pas, cela indique probablement que la politique de cache renvoyée par le serveur pour ce fichier interdit la mise en cache.

Et si ce n'est pas le problème, mettez à jour votre question avec l'URL du fichier qui n'est pas mis en cache, et un extrait de code montrant comment vous avez configuré la taille du cache.