1

NSURLProtocol を介して UIWebView にローカル画像を提供しています (つまり、画像はすぐに返されます) が、キャッシュされた画像 (最初の読み込み後に画像が再度表示される) の読み込みに時間がかかるという問題が発生しています。私の NSURLProtocol にこれを引き起こしているものがありますか?

@implementation URLProtocol

+ (BOOL) canInitWithRequest:(NSURLRequest *)request {
    return  [request.URL.scheme isEqualToString:@"file"] ||
            [request.URL.scheme isEqualToString:@"http"];
}

+ (NSURLRequest*) canonicalRequestForRequest:(NSURLRequest *)request {
    return request;
}

- (void) startLoading {
    id<NSURLProtocolClient> client = self.client;
    NSURLRequest* request = self.request;
    NSString *fileToLoad = request.URL.absoluteString;
    NSURLResponse *response;

    if([fileToLoad hasPrefix:@"http://app-fullpath/"]){
        fileToLoad = [fileToLoad stringByReplacingOccurrencesOfString:@"http://app-fullpath/" withString:@""];
    } else {
        fileToLoad = [[NSURL URLWithString:fileToLoad] path];
    }

    NSData* data = [NSData dataWithContentsOfFile:fileToLoad];

    response = [[NSHTTPURLResponse alloc] initWithURL:[request URL] statusCode:200 HTTPVersion:@"HTTP/1.1" headerFields:[NSDictionary dictionary]];

    [client URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];
    [client URLProtocol:self didLoadData:data];
    [client URLProtocolDidFinishLoading:self];
}

- (void) stopLoading { }
@end

速度に関する提案、javascript/html または iOS はありますか?

4

1 に答える 1