2013-05-19 12 views
6

Mam stronę internetową, która ma wiele dużych zdjęć, które są zawsze ustawione w html. Takich, jakCzy obiekty obrazów pozostają w pamięci RAM po .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> 
.... 

Powoduje to, że strona internetowa jest bardzo wolna. Nawet funkcja .animate() działa z problemami. Postanowiłem załadować tylko 5 obrazów, a pozostałe są ładowane na żądanie. Problem polega na tym, że gdy załaduje się zbyt wiele obrazów, strona internetowa znowu staje się wolna. Pytanie:

Jeśli użyję funkcji .remove() do usunięcia wszystkich obrazów wokół wyświetlanego obrazu, czy obrazy pozostaną w pamięci RAM, lub zostaną usunięte i wznowione z pamięci podręcznej po dodaniu obrazu ?

Mam nadzieję, że pytanie jest jasne, z góry dzięki.

+0

Spodziewam się, że usunięte zdjęcia zostaną poddane utylizacji śmieci, a tym samym usunięte w pewnym momencie wkrótce potem, ale niekoniecznie natychmiast. Czy próbowałeś korzystać z narzędzi programistycznych przeglądarki, aby monitorować wykorzystanie pamięci? – nnnnnn

+0

Używam przeglądarki Firefox. Czy ma go firebug lub pasek narzędzi dla programistów internetowych? –

+0

O ile wiem, podczas tworzenia obiektu obrazu, obraz jest pobierany i przechowywany w formie binarnej prawie jak zwykła zmienna, i powinien podlegać normalnym zasadom usuwania śmieci, które usuwałyby obiekt z pamięci, gdy nie ma więcej odniesień do obiektu. – adeneo

Odpowiedz

1

Nie można usunąć niczego na siłę z aktywnej pamięci przeglądarki przy użyciu Javascript/jQuery, jednak tak jak inni użytkownicy powiedzieli przy użyciu .remove() usunięte elementy są następnie narażone na zbieranie śmieci.

Myślę, że jest to mało prawdopodobne, aby te obrazy powodowały spowolnienia, które widzisz, i jest to bardziej prawdopodobne, że wystąpi problem z innym kodem skryptu.

Zakładam, że przez spowolnienie rozumiesz, jak opóźnienie strony wskazujące na użycie pamięci/procesora.

Jeśli problem dotyczy rzeczywistego czasu wczytywania strony, problem leży gdzie indziej i nie ma nic wspólnego z pamięcią RAM, ale jest bardziej prawdopodobne ze względu na czas ładowania obrazów, w miarę możliwości usuń niepotrzebne obrazy po stronie serwera.

Powiązane problemy