Ich erstelle eine Anwendung, die eine UIWebView
mit einer großen Anzahl von Bildern, CSS, eingebettetem Video und JavaScript-tap-Handler enthält. Scrolling-Performance ist stotternd und ich suche nach Einsichten in die effektivsten Wege, dies zu verbessern.Möglichkeiten zur Verbesserung der UIWebView-Scrollleistung?
Welche der folgenden Eigenschaften führt zu Laggy UIWebView
Scrollen? Welche anderen Faktoren können die Leistung beeinträchtigen?
- Anzahl der Bilder
- Soll ich Bilder aus dem DOM beim Scrollen des Nutzers an sie vorbei zu entfernen, und das Hinzufügen von ihnen zurück, wenn sie wieder nach oben bewegen?
- Größe der Bilder
- Will Retina-Qualität Bilder in einer Web-Ansicht Affekt Scrollen Leistung viel mehr als kleinere Versionen würde?
- Bildskalierung
- würde die Bilder vor der Zeit macht einen großen Unterschied Ändern der Größe, anstatt auf der Web-Ansicht zu verlassen, wie
width: 100%;
auf Erklärungen maßstab basiert?
- würde die Bilder vor der Zeit macht einen großen Unterschied Ändern der Größe, anstatt auf der Web-Ansicht zu verlassen, wie
- CSS
- ich
box-shadow
hätte vermieden werden, aber es gibt auch andere CSS-Eigenschaften, die auch bekannt sind für sich negativ Scrollen Leistung zu beeinträchtigen?
- ich
Wenn es irgendwelche anderen Ressourcen oder Tools, die für die Profilerstellung verwendet werden kann, habe ich die Liebe zu ihnen zu hören.
Ich-Stimme kann noch nicht geben, aber das ist eine ernste No-No. Diese Lösung bewirkt, dass das gesamte webView in seinen CALayer gezeichnet wird (wodurch der Tiling-Rendering-Mechanismus von UIWebView ungültig wird), was zu einer enormen Speicherbenutzung führt. OPs Beschreibung seiner Seiten "mit einer großen Anzahl von Bildern, CSS, eingebetteten Videos und JavaScript-Antipp-Handlern" würde dazu führen, dass die App übermäßig viel Speicher verbraucht. –
Also, was Sie sagen, ist ich Speicher für Leistung getauscht? Das ist irgendwie was ich dachte. Ich stimme zu, dass es keine großartige Lösung ist, aber es war die einzige Möglichkeit, das Scrollen zu verbessern. Und da ich genau wusste, was im Vorfeld in die Webansicht geladen werden würde und alle Inhalte mit der App gebündelt waren, hatte ich kein Problem damit. – rjowens
Nun, diese Art des Handels ist sehr gefährlich mit UIWebView, weil es sehr schnell und aggressiv im Speicher wächst. Und wenn Inhalte größer und komplexer werden, werden Sie bald eine Flut von didReceiveMemoryWarning-s finden und schließlich abstürzen. –