0

したがって、カスタムUITableViewCellsを備えたUITableViewがあり、カスタムセル内に、AFNetworkingカテゴリを使用して画像をロードするUIImageViewがあります。

NSString *imageURLString = [[object.image_ valueForKey:@"low_resolution"] valueForKey:@"url"];
    NSURLRequest *imageURLRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:imageURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];
    [self.imageView_ setImageWithURLRequest:imageURLRequest andAnimate:YES placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){

    }failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){
        NSLog(@"FAILED");
    }];

問題は、下にスクロールすると、画像リクエストがトリガーされるまでに長い遅延があるように見える場合があることです。私は非常に良い接続でテストしています。なぜこうなった?

画像リクエストが後でトリガーされるのか、応答が後で返されるだけなのか、自分自身にはわかりません。しかし、私が見ているのは、最初にアプリが読み込まれると、画像が正常に読み込まれるということです。下にスクロールすると、すべての画像が白くなります。60秒ほど辛抱強く待つと、画像が読み込まれます。

4

1 に答える 1

0

考えられる理由の1つは、リストを下にスクロールAFNetworkingすると、バックグラウンドで実行される多くのリクエストを送信しているということです。

下にスクロールすると、送信されるリクエストの数が増え、サーバー側でFIFO順に処理される可能性があります(アプリに画像を転送するときにサーバーが特定の帯域幅を超えない可能性もあります)。現在表示されている画像が表示される前にスクロールを停止すると、前の画像の束が読み込まれるのを待つ必要があります。

これは、遅延がある理由を説明している可能性があります。NSLogトレースを成功ハンドラーに入れてリクエストURLをログに記録することをお勧めします。そうすれば、何が起こるかを確認できます。着信画像のフローを調べます。各画像が転送されるのにかかる時間を確認してください。

一般的に、あなたがやろうとしていることは問題ないはずです。それが、あなたがそれを送信するリクエストの数によって引き起こされるサーバー側の問題を考えている理由です。

于 2012-07-18T17:02:57.853 に答える