Javascript 返回时,UIWebView始终从服务器刷新
我有一个为平板电脑优化的网站。它会在页面上显示一个链接,以向后导航,该链接调用JavaScript函数Javascript 返回时,UIWebView始终从服务器刷新,javascript,objective-c,http,caching,uiwebview,Javascript,Objective C,Http,Caching,Uiwebview,我有一个为平板电脑优化的网站。它会在页面上显示一个链接,以向后导航,该链接调用JavaScript函数window.history.back()。在iPad上的Safari浏览器中,此链接通过从历史记录中加载缓存页面而不是向服务器发出另一个请求来实现。但是,当我在一个简单的本机应用程序中通过UIWebView打开同一个站点时,每次我使用该链接返回时,该链接都会向服务器发出请求 我发现我可以通过以下方式解决此问题: 删除HTTP响应头Pragma:no cache 将缓存控制标头设置为“最大年龄=
window.history.back()
。在iPad上的Safari浏览器中,此链接通过从历史记录中加载缓存页面而不是向服务器发出另一个请求来实现。但是,当我在一个简单的本机应用程序中通过UIWebView打开同一个站点时,每次我使用该链接返回时,该链接都会向服务器发出请求
我发现我可以通过以下方式解决此问题:
Pragma:no cache
请注意,我的大部分测试都是在iOS版本为6.1.3的iPad 2.0上完成的。在webview中加载url时,请尝试以下代码: NSData*urlData; NSString*baseURLString=@“yoursite.com”; NSString*urlString=[baseURLString stringByAppendingPathComponent:@“yourfile”] NSURLRequest*request=[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]缓存策略:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10.0]; NSURLConnection*connection=[[NSURLConnection alloc]initWithRequest:请求委托:nil] 如果(连接) { urlData=[NSURLConnection sendSynchronousRequest:request]
NSString *htmlString = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
[webView loadHTMLString:htmlString baseURL:baseURLString];
[htmlString release];
}
[连接释放]