Je construis une application qui comprend un UIWebView
contenant un grand nombre d'images, de CSS, de vidéo intégrée, et de gestionnaires de prise JavaScript. La performance de défilement est stuttery et je cherche un aperçu des moyens les plus efficaces pour améliorer cela.Comment améliorer les performances de défilement d'UIWebView?
Laquelle des caractéristiques suivantes mène à un retard de défilement UIWebView
? Quels autres facteurs peuvent entraver la performance?
- Quantité d'images
- Dois-je me retirer des images du DOM comme l'utilisateur fait défiler devant eux, et en les ajoutant en arrière s'ils défilent de secours?
- Taille des images
- Will images Retina-qualité dans une vue web défilement des performances affect beaucoup plus que des versions plus petites Would?
- image mise à l'échelle
- Would redimensionner les images à l'avance faire une grande différence, plutôt que de compter sur la vue Web à l'échelle en fonction des déclarations comme
width: 100%;
?
- Would redimensionner les images à l'avance faire une grande différence, plutôt que de compter sur la vue Web à l'échelle en fonction des déclarations comme
- CSS
- j'ai évité
box-shadow
, mais y at-il d'autres propriétés CSS qui sont également connus pour nuire aux performances de défilement?
- j'ai évité
S'il y a d'autres ressources ou des outils qui peuvent être utilisés pour le profilage, j'ai l'amour d'entendre à leur sujet.
Je ne peux pas vers le bas vote encore, mais cela est un grave non-non. Cette solution provoque le dessin de l'ensemble webView dans son calayer (invalidant le mécanisme de rendu du pavage de UIWebView), provoquant une énorme utilisation de la mémoire. La description de ses pages par OP, "contenant un grand nombre d'images, de CSS, de vidéo incorporée, et de gestionnaires de prise JavaScript", conduirait l'application à utiliser une quantité excessive de mémoire. –
Donc, ce que vous dites est que j'ai échangé de la mémoire pour la performance? C'est un peu ce que je pensais. Je suis d'accord que ce n'est pas une bonne solution, mais c'était le seul moyen que j'ai trouvé pour améliorer le défilement. Et étant donné que je savais exactement ce qui allait être chargé dans le webview à l'avance et que tous les assets étaient regroupés avec l'application, je n'avais aucun problème à le faire de cette façon. – rjowens
Eh bien, ce genre de trading est très dangereux avec UIWebView, car il grandit dans la mémoire très rapidement et agressivement. Et quand le contenu devient plus grand et plus complexe, vous trouverez bientôt un barrage de didReceiveMemoryWarning-s et finalement des accidents. –