rapida precio plus original cargador carga iphone html objective-c ios

precio - cargador carga rapida iphone xs max



¿Cómo almacenar contenido en UIWebView para una carga más rápida más adelante? (4)

Observé que el safari de iphone almacena el contenido en caché para que la carga de la página para más adelante sea mucho más rápida que en un navegador de escritorio. Así que tome la página web móvil de Gmail, por ejemplo, la primera carga es bastante lenta (5-10 segundos). Pero si cierro la pestaña y vuelvo a abrir la página, es muy rápido (1 segundo).

Sin embargo, este comportamiento no es el mismo si carga el contenido a través de UIWebView en su aplicación. ¿Me estoy perdiendo algunos ajustes? ¿Cómo hago para que el UIWebView almacene en caché el contenido automáticamente sin tener que pasar por la molestia de guardar el contenido yo mismo?


Basado en este hilo de discusión , parece que no hay ningún caché de nivel de sistema operativo con UIWebView . Basado en la experiencia, me he dado cuenta de que Safari en mi dispositivo con sistema operativo iPhone no almacena en caché sus páginas web (por ejemplo, presionar el botón Atrás en Safari no recarga la página anterior desde un caché).


He hecho un par de aplicaciones que almacenan en caché las páginas en la carpeta Documentos, luego comparo las marcas de tiempo de las páginas almacenadas en caché y páginas web antes de cargar la nueva página web. Entonces el flujo básico es:

if (fileIsInCache) if (cacheFileDate > webFileDate) getCachedFile else getFileFromWeb saveFileToCache else getFileFromWeb saveFileToCache stuffFileIntoUIView maybeReduceCache

Aún debe acceder a la Web para obtener los encabezados, pero eso es mucho más rápido que descargar una página / imagen / archivo completo.


La clave es: NSURLRequestReturnCacheDataElseLoad

NSData *urlData; NSString *baseURLString = @"mysite.com"; NSString *urlString = [baseURLString stringByAppendingPathComponent:@"myfile"]; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval: 10.0]; NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:nil]; if (connection) { urlData = [NSURLConnection sendSynchronousRequest: request]; NSString *htmlString = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]; [webView loadHTMLString:htmlString baseURL:baseURLString]; [htmlString release]; } [connection release];


NSString *stringurl=[NSString stringWithFormat:@"http://www.google.com"]; NSURL *url=[NSURL URLWithString:stringurl]; NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:15.0]; [uiwebview loadRequest:theRequest];

Cargará una URL por primera vez y luego buscará únicamente los cambios de contenido. Si no hay actualizaciones en el contenido de la URL, se cargará desde la memoria caché (almacenamiento local).