Pregunta

Cuando se utiliza NSURLRequest en el iPhone, ¿cuáles son las diferencias de rendimiento en el mundo real entre los distintos ajustes NSURLRequestCachePolicy ? Estoy especialmente interesado en el efecto de la política de caché en la percepción del usuario de la velocidad a la que muestran las páginas UIWebView.

He estado usando el NSURLRequestCachePolicy defecto, pero creo que tal vez NSURLRequestReloadRevalidatingCacheData podría ser mejor para la mayoría de los casos, especialmente cuando vamos a volver a una página anterior.

Si ha utilizado diversas políticas de caché bajo condiciones del mundo real, lo que demostró la política óptima en una circunstancia particular? ¿Qué política proporciona el mejor rendimiento general en los tres diferentes tipos de conexiones del iPhone, Wi-Fi, 3G y Edge? ¿La política de caché incluso tiene ningún efecto significativo sobre la percepción del usuario de la velocidad de carga de la página o debería estar buscando otro lugar para optimizar el tiempo de visualización de UIWebView?

Actualización:

No parece haber consenso en que UIWebView parece ignorar la configuración de caché en cualquier NSURLRequest dado. No tengo plena confianza de que esta es la respuesta final pero salvo el tiempo para hacer algunas pruebas exhaustivas, no puedo negar que. Por lo tanto, estoy aceptando la respuesta de mayor audiencia. Sin embargo, yo le aconsejaría que se tome las respuestas con un grano de sal si el asunto es de importancia para su proyecto. -. TechZen

¿Fue útil?

Solución

No creo que esto hará ninguna diferencia en sus tiempos de carga UIWebView. UIWebView se basa en WebKit, y no están usando NSURLConnection internamente (que están en un nivel mucho más bajo y el uso CFNetwork directamente).

Esto probablemente no es lo que quiere oír, pero probablemente la mejor manera de acelerar el tiempo de carga UIWebView es no utilizar un UIWebView. Representando las páginas web es bastante intensivo de la CPU. De hecho, es en realidad la mayoría MobileSafari vinculado a la CPU, no en red-atado - observe cuánto tiempo toma para llenar en ese patrón de tablero de ajedrez al desplazarse, por ejemplo. Para el contenido muy rápido, una rápida carga, lo mejor es crear una interfaz nativa en Cocoa.

Otros consejos

Me unas pocas horas para un proyecto tratando de conseguir un UIWebView a páginas de caché que estaba cargando. Resultó imposible desde el lado de la aplicación sin almacenar los archivos de forma local. Parece que UIWebView ignora el NSURLRequestCachePolicy por completo.

Yahoo! ha algo de información sobre el comportamiento de almacenamiento en caché del iPhone.

Me acabo de hacer un grep sobre las fuentes de WebKit, y no encontrar cualquier uso de la -[NSURLRequest cachePolicy].

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top