Я думаю, что у Вас должно быть два действия: тот, который обрабатывает представление формы и другой, который собирает данные для представления. Как только форма была обработана, Вы звоните return RedirectToAction("Index")
, и Вы сделаны. Я надеюсь, что понял то, что Вы подразумевали под этим.
Ключ: NSURLRequestReturnCacheDataElseLoad
NSData *urlData;
NSString *baseURLString = @"mysite.com";
NSString *urlString = [baseURLString stringByAppendingPathComponent:@"myfile"];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval: 10.0];
NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:nil];
if (connection)
{
urlData = [NSURLConnection sendSynchronousRequest: request];
NSString *htmlString = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
[webView loadHTMLString:htmlString baseURL:baseURLString];
[htmlString release];
}
[connection release];
На основании этой ветки обсуждения может показаться, что с UIWebView
невозможно кэширование на уровне ОС. Основываясь на опыте, я заметил, что Safari на моем устройстве iPhone OS не кэширует свои веб-страницы (например, нажатие кнопки «Назад» в Safari не перезагружает старую страницу из кеша).
Я создал несколько приложений, которые кэшируют страницы в папку «Документы», а затем сравнивают временные метки кэшированных и веб-страниц перед загрузкой новой веб-страницы. Итак, основной поток таков:
if (fileIsInCache)
if (cacheFileDate > webFileDate)
getCachedFile
else
getFileFromWeb
saveFileToCache
else
getFileFromWeb
saveFileToCache
stuffFileIntoUIView
maybeReduceCache
Вам все равно нужно выйти в Интернет, чтобы получить заголовки, но обычно это намного быстрее, чем загрузка всей страницы / изображения / файла.