2015-08-05 3 views
5

В моем гибридном приложении я называю веб-ресурс, например main.css?{timestamp-file-was-modified}, и даю им заголовок кэша максимального возраста в течение года, чтобы клиенты сохраняли его более или менее навсегда.UIWebView игнорирует дисковый кеш?

Что, кажется, происходит в моем приложении IOS, однако, что UIWebView отличия заголовка кэша в течение жизни приложения, то есть, когда я загрузить новую страницу, которая также включает в себя main.css?{same-timestamp} он не будет даже пытаться перепроверить, как он знает, он имеет нужный файл в кеше. BUT, при новом запуске приложения (после того, как его убили или выключили устройство) UIWebView снова извлекает все ресурсы, игнорируя кеш. Я провела его через Charles Proxy, чтобы проверить, что это так.

Я посмотрел в SQlite cache.db, и я вижу, что main.css?{same-timestamp} есть, но все же UIWebView не загрузит его из кеша, в результате чего начальная загрузка страницы будет значительно медленнее, чем это могло бы быть.

Я пробовал его на iPhone с iOS 8.4 и iPad с iOS 8.2. Тот же результат.

Любые идеи?

ответ

0

Если вы действительно хотите управлять кешем, вы можете зарегистрировать свой пользовательский подкласс NSURLProtocol в делегате, а затем с помощью - (void)startLoading вы можете загружать что-либо из локального хранилища.

Смежные вопросы