2013-05-19 4 views
6

Ho un sito web che ha un sacco di foto di grandi dimensioni che sono sempre impostate in html. Mi piaceGli oggetti immagine rimangono nella RAM dopo .remove()?

<div><img src="sample1.jpg"></div> 
<div><img src="sample2.jpg"></div> 
<div><img src="sample3.jpg"></div> 
<div><img src="sample4.jpg"></div> 
.... 

Ciò rende il sito molto lento. Anche la funzione .animate() funziona con problemi. Così ho deciso di caricare solo 5 immagini e le altre sono caricate su richiesta. Il problema è che quando vengono caricate troppe immagini il sito web diventa nuovamente lento. Domanda:

Se utilizzo la funzione .remove() per rimuovere tutte le immagini attorno a quella che viene visualizzata, le immagini rimarranno nella RAM, oppure verranno eliminate e riprese dalla cache quando aggiungo un'immagine ?

Spero che la domanda sia chiara, grazie in anticipo.

+0

Mi aspetto che le immagini rimosse vengano sottoposte a garbage collection e quindi rimosse in un momento successivo ma non necessariamente immediatamente. Hai provato a utilizzare gli strumenti di sviluppo del browser per monitorare l'utilizzo della memoria? – nnnnnn

+0

Sto usando Firefox. La toolbar Firebug o sviluppatore web ce l'ha? –

+0

Per quanto ne so quando si crea un oggetto immagine, l'immagine viene scaricata e archiviata in forma binaria quasi come una variabile regolare, e dovrebbe essere soggetta alle normali regole della garbage collection, che rimuoverà l'oggetto dalla memoria una volta che non ci sono più riferimenti all'oggetto. – adeneo

risposta

1

Non è possibile eliminare forzatamente nulla dalla memoria attiva del browser utilizzando Javascript/jQuery, tuttavia, come gli altri utenti hanno detto sull'uso di .remove(), gli elementi rimossi vengono quindi esposti alla raccolta dati obsoleti.

Penso sia improbabile che siano queste immagini a causare i rallentamenti che si stanno vedendo ed è più probabile che si verifichino problemi con alcuni degli altri codici di script.

Suppongo che per rallentamento intendiate il ritardo della pagina che indica l'utilizzo della memoria/della CPU.

Se il problema è reale tempo di caricamento della pagina, allora il problema è un altro e non ha nulla a che fare con la RAM che è ripreso, ma è più probabile a causa di tempi di caricamento delle immagini, se possibile rimuovere le immagini non necessarie sul lato server.