iPhone и HTML5 кэш манифеста - PullRequest
2 голосов
/ 07 ноября 2008

Я пытаюсь создать веб-приложение для iPhone с использованием ASP.NET. Страница динамически отображается один раз для каждого посетителя. На этом этапе страница может быть добавлена ​​в закладки, и она никогда не изменится для этого посетителя. По этой причине он должен кэшироваться локально с этого момента, чтобы приложение работало, если на него ссылаются из закладки, даже если сетевое соединение недоступно. Независимо от того, что я пытаюсь сделать, телефон продолжает запрашивать страницу с сервера, вызывая повторную визуализацию, или он не работает, если телефон отключен.

Луи Гербарг предложил в этой публикации, чтобы я использовал HTML5 Cache Manifest, чтобы добиться этой работы, однако, следуя документам w3.org , похоже, не работает iPhone. У кого-нибудь есть хороший пример, где работает кеш приложений?

Ответы [ 5 ]

7 голосов
/ 09 марта 2009

Файл манифеста кэша должен иметь mime-тип text / cache-manifest. Это абсолютно критично, без этого не получится. Если вы перейдете по URL-адресу вашего файла манифеста, он должен запустить загрузку ...

Кроме того, я обнаружил, что размещение местоположения манифеста в теге как абсолютного местоположения, а также всех записей в файле манифеста будет более эффективным.

5 голосов
/ 08 ноября 2008

Я ответил на ваш предыдущий вопрос, связанный с этим, но из этого вопроса не было ясно, что вы пытались кэшировать динамический контент. Манифест кэша предназначен для получения статического контента, который вы хотите, чтобы работали автономные веб-приложения.

Я не уверен, что ты можешь делать то, что хочешь. Хотите ли вы, чтобы приложение могло работать в автономном режиме, или вы просто пытаетесь что-то привязать в кеше, потому что оно медленно загружается? Если вы на самом деле не создаете автономное веб-приложение (которое пользователь добавит в качестве закладки или приложения в Spring Board), тогда ваша страница может (и обязательно должна) быть удалена из локального хранилища по усмотрению браузера, независимо от того, насколько свободна политика кэширования, установленная на странице.

2 голосов
/ 08 ноября 2008

Вы должны использовать API базы данных Safari Javascript, который должен работать для iPhone и Safari 3.1. Отлично работает для локального кэширования и хранения данных:

http://developer.apple.com/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/

1 голос
/ 08 ноября 2008

Это может быть связано с размером вывода.

Я не могу говорить о каком-либо серьезном опыте настройки вещей специально для iphone, но здесь есть интересное чтение от команды YUI: http://yuiblog.com/blog/2008/02/06/iphone-cacheability/,, которое указывает, что самый большой разархивированный файл кэша, который может храниться в iphone 25 КБ, и для оптимального кэширования максимально возможное количество компонентов должно быть <25 КБ. </p>

Это может быть причиной ваших проблем, но это только предположение.

0 голосов
/ 10 января 2010

Если кому-то интересно, вот простая демонстрация кеша приложений, которую я построил для подтверждения концепции. Вы должны проверить, что поддерживает ваш браузер, но это работает в FF 3.5 и Safari на IPhone. http://demos.hahana.co.uk/app-cache-demo.html

...