Sto costruendo un'applicazione che include un UIWebView
contenente un numero elevato di immagini, CSS, video incorporato e gestori di tap JavaScript. Lo scorrimento delle prestazioni è stuttery e sto cercando informazioni sui modi più efficaci per migliorare questo.Modi per migliorare le prestazioni di scorrimento di UIWebView?
Quale delle seguenti caratteristiche può causare uno scorrimento lenta dello UIWebView
? Quali altri fattori potrebbero ostacolare le prestazioni?
- quantità di immagini
- dovrei rimuovere le immagini dal DOM come l'utente scorre davanti a loro, e l'aggiunta di nuovo se scorrere il backup?
- Dimensioni di immagini
-
immagini
- Will Retina qualità in una vista web influenzano lo scorrimento prestazioni molto di più rispetto alle versioni più piccole sarebbero?
- Immagine ridimensionamento
- Volesse il ridimensionamento delle immagini prima del tempo fare una grande differenza, piuttosto che fare affidamento sulla vista web di scala basata sulle dichiarazioni come
width: 100%;
?
- Volesse il ridimensionamento delle immagini prima del tempo fare una grande differenza, piuttosto che fare affidamento sulla vista web di scala basata sulle dichiarazioni come
- CSS
- ho evitato
box-shadow
, ma ci sono altre proprietà CSS che sono noti anche per influire negativamente sulle prestazioni di scorrimento?
- ho evitato
Se ci sono altre risorse o strumenti che possono essere utilizzati per la profilazione, ho l'amore di sentire su di loro.
posso ancora down-voto, ma questo è un grave no-no. Questa soluzione fa sì che l'intera webView venga disegnata nel suo CALayer (invalidando il meccanismo di rendering di affiancamento di UIWebView), causando un enorme uso di memoria. La descrizione di OP delle sue pagine, "contenente un gran numero di immagini, CSS, video incorporato e gestori di tap JavaScript" farebbe sì che l'app utilizzasse una quantità eccessiva di memoria. –
Quindi quello che stai dicendo è che ho scambiato la memoria per le prestazioni? Questo è un po 'quello che ho capito. Sono d'accordo che non è una soluzione eccezionale, ma è stato l'unico modo che ho trovato per migliorare lo scorrimento. E dato che sapevo esattamente cosa sarebbe stato caricato nella webview prima del tempo e tutte le risorse erano in bundle con l'app, non ho avuto problemi a farlo in questo modo. – rjowens
Bene, questo tipo di trading è molto pericoloso con UIWebView, perché cresce in memoria molto velocemente e in modo aggressivo. E quando il contenuto diventa più grande e più complesso, troverai presto una raffica di didReceiveMemoryWarning-s e alla fine si blocca. –