Я показываю веб-приложение в UIWebView
, и иногда содержимое страниц будет меняться. После изменения содержимого приложение очистит кеш. Но когда я иду на страницу, я ранее посетил UIWebView
не отправляет запрос HTTP GET, но загружает из кэша, хотя я отключил кэш так:Удалить внутренний кеш UIWebView
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
Initally Я выгрузку запрос с cachePolicy cachePolicy:NSURLRequestReturnCacheDataElseLoad
.
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:myURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10.0]];
UIWebView
имеют какой-то внутренний кэш. Уже посещенные страницы будут загружены из этого внутреннего кеша, а не пройдут через NSURLCache
, а также не будет отправлен запрос.
Есть ли способ очистить внутренний кеш UIWebView
? Я даже воссоздал UIWebView
, но кеш все еще есть.
Вы попробуете решение здесь: http://stackoverflow.com/a/14096331/1749367 – helper
Да, ни один из этих решений не подходит для того, что я хочу достичь. –
Я нашел обходное решение - установка атрибута Cache-Control в заголовке ответа HTTP для max-age = 0. Затем запрос будет отправляться на ресурс каждый раз. Способом его решения может быть отслеживание того, запрашивался ли файл до момента последней очистки кэша, и установите максимальное возрастание на другое значение (например, 3600) во второй раз, когда ресурс загружается после последней очистки. –