WebView在Mac OS中加载缓慢

时间:2012-11-14 07:37:12

标签: macos email webview webkit

我在Mac OS上为Mail.app创建了插件。 我正在使用WebView来显示网页,一切都很好,但网页加载速度很慢。

然后我创建了测试cocoa应用程序来比较加载时间。 当测试应用程序加载页面的速度快〜5倍时,我感到很惊讶。

在开发人员栏中,我看到我的测试应用程序收到304 code,表示“请求的URL的资源未更改,并且可以使用缓存资源”。 与测试应用程序相比,插件总是接收200个http代码并再次加载资源。

也许我应该指定在webview中使用缓存,或者我有一些捆绑权限问题。

在插件中,我尝试像这样指定SharedURLCache

NSURLCache *cache = [[NSURLCache alloc] initWithMemoryCapacity:1024*1024*20
                                                  diskCapacity:1024*1024*5
                                                      diskPath:NSHomeDirectory()];

[NSURLCache setSharedURLCache:cache];

然后我尝试在WebView上订阅ResourceLoadDelegate并像这样更改请求对象

- (NSURLRequest *)webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource
{
    if ([request cachePolicy] != NSURLRequestReturnCacheDataElseLoad)
    {
        return [NSURLRequest requestWithURL:[request URL]
                                cachePolicy:NSURLRequestReturnCacheDataElseLoad
                            timeoutInterval:[request timeoutInterval]];
    } else {
        return request;
    }

}

我还尝试在WebView上更改属性

[[webView preferences] setUsesPageCache:YES];
[[webView preferences] setCacheModel:WebCacheModelPrimaryWebBrowser];

但是一切都行不通。

感谢您的帮助。

0 个答案:

没有答案