2

現在、同時にロードしようとしている約 4 ~ 5 個の異なる webView がありますが、一度にロードできる loadRequest は 1 つだけであるという結論に達しました。webview ごとにカスタム クラスを作成しましたが、loadRequest は呼び出されませんが、webview の別の loadRequest が利用されている場合。

これらの呼び出しを別のスレッドに保持して、ディスパッチメカニズムで機能させたり利用したりする方法はありますか? 代替案がないか検討中です。

ありがとう

4

2 に答える 2

3

NSUrlConnection を使用してデータをプリロードします。スレッドは使用しません

    //for EACH url to load
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:tweet[@"profile_image_url"]]];
    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue] // one should ideally use a different queue here to free main thread and ONLY do the imageView.image setting in Main thread
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
                               if(!error) {
                                   //load webview! with Data maybe!
                               }
                           }];
于 2012-12-05T22:05:19.077 に答える
0

Web ビューが 4 つまたは 5 つしかないように見えるので、それらをディスパッチ キューで呼び出すことはそれほど効率的ではありません。何百ものリクエストがある場合は、いくつかの戦略を考える必要があります。

NSArray *myWebSites = [NSArray arrayWithObjects:@"www.cnn.com",@"www.fox.com",....,nil];

for(url in myWebsites){
    dispatch_async(dispatch_get_global_queue, ^{
        // get the data from the url.

        // do the display in main queue
        dispatch_async(dispatch_get_mainqueue, ^{
            //load the web view;
        }
    }
}
于 2012-12-05T21:44:32.387 に答える