Cache Safari de l’iPhone: pas très éfficace …

Il y a quelques jours, Éric Daspet (de Performance web) parlait de l’iPhone et de sa gestion du cache Web (sous Safari) dans un billet nommé « Encore sur le cache de l’iPhone ». Voici un extrait de celui-ci:

Encore il y a peu nous parlions d’un cache HTTP limité à 25ko par composant sur l’iPhone, 500ko au total. On parle de la taille une fois la ressource décompressée (sans gzip donc). 25ko c’est peu, la plupart des sites ont un composant qui dépasse cette taille. 500ko ce n’est pas beaucoup mieux, naviguez sur un ou deux sites et le cache aura complètement oublié vos précédentes visites. Pire, des bibliothèques javascript comme jquery dépassent les 25ko et donc ne passeront jamais dans le cache.

La bonne nouvelle c’est que cette limite est désormais dépassée. Une présentation de Nicole Sullivan indique que la limite des 25ko a disparue, et que la taille globale du cache a été doublée.

Oui mais voilà, la situation n’est pas si idyllique que ça … Dans son billet, il invite à faire quelques tests sur les différentes plateformes (iPhone et iPod Touch tous firmware confondus). Je viens de finir mes tests sur iPhone 3G dernier firmware (2.2) et voici le résultat:

  • Aucune mise en cache pour la page HTML en elle-même (même si les en-têtes HTTP le demandent explicitement). Et ce, peu importe la taille du fichier HTML.
  • Concernant la mise en cache des éléments joints (dans le cas présent: une image), ça passe jusqu’à 220Ko (une fois cette limite dépassée, le mécanisme de cache ne s’applique plus).
  • Aucune différence de comportement n’a été remarquée que l’on soit en WiFi ou bien en 3G.

Avouons le, le comportement de Safari iPhone est assez étonnant pour un développeur Web. Mais pour un développeur mobile, ça semble assez normal. Rappelez-vous que Safari iPhone peut avoir simultanément 9 « onglets » ouverts. Rajoutons aussi que Safari est une application qui peut être momentanément interrompue, puis relancée par l’utilisateur. On se retrouve donc avec des problématiques de gestion mémoires bien plus fines que dans le cas d’un développement Web « lourd ». Pour finir, rappelons (encore) que l’iPhone est un appareil mobile, donc avec une quantité limitée de mémoire …

2 réactions à l'heure actuelle »

  1. Rik a écrit

    le 2 janvier 2009 à 14:24

    D’après nos tests, il n’y a pas de limite de 220ko par composant. Est-ce que tu aurais mis en ligne tes tests par hasard ?

  2. Julien Quéré a écrit

    le 5 janvier 2009 à 18:58

    Bonsoir Rik,

    Non, j’ai fais les tests au travail … Donc ce n’est pas en ligne. Je vais voir si j’ai le temps (dans les jours à venir) de reproduire l’environement de tests.

Fil RSS des commentaires · URI de trackbacks (modérés ...)

Laisser un commentaire

Un nom (requis)

Un mail (requis)

Peut être une URL ?

Réaction: