Estoy compilando una aplicación que incluye un UIWebView
que contiene una gran cantidad de imágenes, CSS, video incrustado y controladores de toque de JavaScript. El rendimiento de desplazamiento es intermitente y estoy buscando información sobre las formas más efectivas de mejorar esto.¿Cómo mejorar el rendimiento de desplazamiento de UIWebView?
¿Cuál de las siguientes características conduce a laggy UIWebView
de desplazamiento? ¿Qué otros factores pueden estar obstaculizando el rendimiento?
- Cantidad de imágenes
- ¿Debo eliminar imágenes desde el DOM como el usuario se desplaza por delante de ellos, y la adición de nuevo si se desplazan una copia de seguridad?
- tamaño de las imágenes
-
imágenes
- Will Retina calidad en una vista web afectar el rendimiento del desplazamiento mucho más que versiones más pequeñas lo haría?
- escalado de imagen
- ¿Podría cambiar el tamaño de las imágenes antes de tiempo hacer una gran diferencia, en lugar de confiar en la vista web a escala basada en las declaraciones como
width: 100%;
?
- ¿Podría cambiar el tamaño de las imágenes antes de tiempo hacer una gran diferencia, en lugar de confiar en la vista web a escala basada en las declaraciones como
- CSS
- he evitado
box-shadow
, pero hay otras propiedades CSS que también son conocidos por afectar negativamente el rendimiento de desplazamiento?
- he evitado
Si hay algunos otros recursos o herramientas que se pueden utilizar para el perfilado, no tengo amor a oír hablar de ellos.
no puedo abajo-votos aún, pero esto es un grave no-no. Esta solución hace que todo el webView se dibuje en su CALayer (invalidando el mecanismo de renderizado de embaldosado de UIWebView), causando un gran uso de memoria. La descripción de OP de sus páginas, "que contiene una gran cantidad de imágenes, CSS, video incrustado y manejadores de tap JavaScript", provocaría que la aplicación utilizara una cantidad excesiva de memoria. –
Entonces, ¿qué estás diciendo es que cambié la memoria por el rendimiento? Eso es algo de lo que pensé. Estoy de acuerdo en que no es una gran solución, pero fue la única forma en que pude encontrar para mejorar el desplazamiento. Y dado que sabía exactamente qué iba a cargarse en la vista web antes de tiempo y todos los activos se incluyeron en la aplicación, no tuve problemas para hacerlo de esta manera. – rjowens
Bueno, este tipo de comercio es muy peligroso con UIWebView, porque crece en la memoria de forma muy rápida y agresiva. Y cuando el contenido se vuelva más grande y más complejo, pronto encontrará un bombardeo de didReceiveMemoryWarning-s y eventualmente se bloqueará. –