2013-10-03 11 views
5

Sto notando che la mia app Phonegap sta avendo alcuni problemi di memoria su iOS7 che non si sono verificati su iOS6.Il web kit iOS7 si arresta in modo anomalo frequentemente, non liberando memoria?

  1. lunghe liste iScroll con molte immagini
  2. la visualizzazione delle immagini da album del telefono (9MP) andrà in crash dopo aver visualizzato diversi

Per 1 #, questo non è mai un problema su iOS6, a prescindere dalla dispositivo.

Per # 2, sto riutilizzando lo stesso elemento DIV per visualizzare l'immagine successiva, quindi sembra che l'immagine precedente non venga cancellata.

Le tecniche menzionate in questo post non appaiono più a lavorare in iOS7: iPad/iPhone browser crashing when loading images in Javascript

+0

Sto riscontrando un problema simile. La mia applicazione che funzionava bene su iOS 6 ora si blocca anche su iOS 7.0.3 perché la memoria immagine non è stata correttamente disposta. Sto usando una tecnica simile a quella descritta nel tuo link. Hai scoperto qualcosa di nuovo a riguardo? Hai già inserito un bug? –

risposta

3

La soluzione migliore per questo problema che ho trovato è il seguente codice:

var img = document.getElementById('imageID'); 
img.parentNode.removeChild(img); 
img.src = 'data:image/gif;base64,' + 
     'R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='; 
setTimeout(function() { 
img = null; 
}, 60000); 

Questa imposta l'attributo src per una piccola gif e poi aspetta abbastanza a lungo per la raccolta dei rifiuti per accadere alla fine.

Vedi: http://www.fngtps.com/2010/mobile-safari-image-resource-limit-workaround/

Questo dovrebbe funzionare per voi. Potrei verificare che la memoria venga rilasciata usando gli strumenti Xcode. Sfortunatamente questa soluzione non sembra funzionare per le app homescreen che sto usando.

+0

7.0.4 presenta lo stesso problema. Usiamo phonegap + backbone + rivetti. L'ho fatto da vicino a ogni vista, ha aiutato un pochino. Sto cercando di implementarlo anche nel binding dei dati dei rivetti, ma questo è l'ultimo posto che so che potrebbe essere d'aiuto. – Krym

+0

I miei problemi sembrano essere risolti in iOS 7.0.4. Oggi c'è anche una beta 7.1. –

+0

significa che questo non è applicabile a iOS 7+? – jujule

Problemi correlati