WebView игнорирует политику кэширования на последующих страницах

Я заметил, что в моем webView я установил политику кэширования при выполнении запроса в viewDidLoad,

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

кеш будет запускаться только в первый раз, и когда я нажимаю другую кнопку на веб-странице, чтобы перейти к последующим страницам, webView игнорирует политику кеша, ускоряя загрузку только на самой первой странице веб-страницы. Последующие страницы загружаются очень медленно.

Как я могу решить эту проблему: заставить все последующие страницы загружаться так же быстро, как первая загруженная страница в webView?


person felixwcf    schedule 19.02.2013    source источник
comment
Это потому, что вы делаете только первый URL-адрес со свойством кеша.   -  person Cyril    schedule 19.02.2013


Ответы (1)


Хм, я думаю, я нашел решение и ответ на свой вопрос сейчас. вроде можно поставить

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:120]; ]

внутри делегата webView

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

если navigationType равен UIWebViewNavigationTypeLinkClicked, чтобы сделать новый запрос с помощью метода, который позволяет мне установить политику кэширования.

person felixwcf    schedule 22.02.2013
comment
Привет, я знаю, что это довольно старо, но как вы переопределили поведение UIWebView, настроив политику кэширования на игнорирование локальных кэшированных данных для последующих запросов? Вы только что вернули NO в методе после вызова loadRequest: с вновь созданным запросом? - person Vik; 13.08.2013