2008-11-07 9 views
2

J'essaie de créer une application web iPhone en utilisant ASP.NET. La page est rendue dynamiquement une fois pour chaque visiteur. À ce stade, la page peut être mise en signet et elle ne changera plus jamais pour ce visiteur. Pour cette raison, il doit être mis en cache localement à partir de ce point afin que l'application s'exécute si elle est référencée à partir du signet même si aucune connexion réseau n'est disponible. Peu importe ce que j'essaie, le téléphone continue de demander à la page du serveur de forcer un rendu ou il échoue si le téléphone est hors ligne.iPhone et HTML5 Cache Manifeste

Louis Gerbarg suggéré dans this après que j'utilise HTML5 cache pour Manifest obtenir ce travail mais à la suite de la w3.org docs ne semble pas fonctionner pour l'iPhone. Est-ce que quelqu'un a un bon exemple où le cache d'application fonctionne?

Répondre

5

J'ai répondu à votre question précédente à ce sujet, mais il n'était pas clair à partir de cette question que vous essayiez de mettre en cache du contenu dynamique. Le manifeste de cache permet d'obtenir le contenu statique souhaité pour les applications Web hors connexion. Je ne suis pas sûr que vous pouvez faire ce que vous voulez. Voulez-vous que l'application puisse fonctionner hors ligne, ou essayez-vous simplement d'insérer quelque chose dans le cache, car il est lent à télécharger? À moins que vous ne construisiez une application Web hors connexion (que l'utilisateur ajoutera en tant que signet ou application au Spring Board), votre page peut (et doit nécessairement) être expulsée du stockage local à la discrétion des navigateurs, quelle que soit la politique de cache que vous définissez sur la page.

+0

Merci !, j'ai ajouté quelques précisions au poste –

1

Cela peut être lié à la taille de la sortie. Je ne peux pas parler d'une expérience sérieuse dans le peaufinage des choses spécifiquement pour un iphone, mais il y a une lecture intersting de l'équipe YUI ici: http://yuiblog.com/blog/2008/02/06/iphone-cacheability/, qui indique que le plus grand fichier de cache décompressé qui peut être tenu dans un iphone est 25k, et que pour la mise en cache optimale, autant de composants que possible devrait être < 25k.

Cela peut être la cause de vos problèmes, mais ce n'est qu'une supposition.

7

Le cache fichier manifeste doit être servi avec un type MIME « text/cache-manifeste ». C'est absolument essentiel, ça ne marchera pas sans ça. Si vous accédez à l'url de votre fichier manifeste, il devrait déclencher un téléchargement ...

En outre, j'ai trouvé que mettre l'emplacement du manifeste dans le tag comme un emplacement absolu, ainsi que toutes les entrées dans le fichier manifeste pour être plus efficace.

0

Si quelqu'un est intéressé voici une démo simple de la cache de l'application, j'ai construit pour preuve de concept. Vous devez vérifier que votre navigateur prend en charge mais cela fonctionne dans FF 3.5 et Safari sur l'iPhone http://demos.hahana.co.uk/app-cache-demo.html

+0

Lien ne fonctionne pas sur 24/11/2011 –

Questions connexes