2

複数のhtmlをダウンロードして、ローカルに文字列として保存していますNSArray. 次に、3UIWebViewsを使用してコンテンツをロードしています。ユーザーは、次を使用してバックグラウンドで 1 つとUIWebView2 つ以上UIWebViewsがロードされていることを常に確認します。

[_firstWebView loadHTMLString:nextHtml.body baseURL:nil];

ユーザーがその間UIWebViewsを動き回るとき、一度に 2 つずつ移動すると、読み込み時間が 1 ~ 2 秒遅くなることがわかりますUIWebViews。5 か 7 にすることも考えましUIWebViewsたが、メモリ使用量に大きく影響するのではないかと心配しています。

私が考えていたもう1つの考えは、コンテンツをローカルに保存してNSDataからロードすることでした

[web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]]; 

しかし、それが私に何らかの改善をもたらすかどうかはわかりませんか?

もう 1 つの考えは、私のアプリ (画面上のアニメーション) の何かが読み込み時間を遅くしているのでloadHTMLString:nextHtml、別のスレッドを使用する必要があるのではないかということでした。

ありがとう

4

1 に答える 1

2

最近、バックグラウンドで UIWebView にコンテンツをロードする方法について調査しました。webview が非表示で、どこかにサブビューとして追加されていない間は、loadRequest が成功しても効果がないことがわかりました。

しかし、ロードする前にビューにアクセスすると、バックグラウンドでロードされたコンテンツが表示され始めます。

したがって、最初にビューを非表示にしてからコンテンツをロードし、ユーザーに表示する前にビューを再び表示します。

読み込み方法:

// make some access to view to reflect content changes
self.webView.hidden = YES;

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:someurl]]];

ユーザーが Web ビューに切り替えると、次のようになります。

// make view visible again
self.webView.hidden = NO;

このアプローチは私にとってはうまくいきました。また、正しい方向に向けることを願っています。

于 2013-03-08T09:45:40.703 に答える