Как освободить память после Ajax-запроса - PullRequest
1 голос
/ 05 августа 2010

У меня есть очень простой слайд-шоу Ajax на моем сайте. При каждой прокрутке новые изображения и содержимое ответов постоянно увеличивают объем памяти, используемый браузером.

Я провел исследование и перепробовал все предложения по сбросу объекта XHR при каждом новом запросе, но это абсолютно ничего не помогает.

Слайд-шоу являются основными, но могут содержать сотни слайдов. Я хочу, чтобы пользователь мог бесконечно перемещаться по слайд-шоу, не ломая свой браузер. Это вообще возможно?

Спасибо, Брайан

Ответы [ 2 ]

5 голосов
/ 06 августа 2010

Увеличение использования памяти является нормальным.В конце концов, вы каждый раз загружаете больше данных - HTML из вашего ответа AJAX, а также отображаемые изображения.Если вы не используете HTML, сгенерированный Adobe Pagemill, это будет всего несколько сотен байтов HTML / текста.Это изображения, которые высосут больше всего места.Все помещается в кеш браузера.

Поскольку вы не делаете ничего сложного с DOM (создание поддеревьев и тому подобное) напрямую, просто повторяя частичную замену фрагмента HTML, в конечном итоге браузер выполнит очисткуи забрать некоторые из неиспользуемых / старых / устаревших данных изображения из памяти / кэша и вернуть часть этой памяти.

Теперь, если вы выполняли очень сложные манипуляции с DOM и генерировали множество новых узлов на лету,и тут и там протекали некоторые узлы, ТОГДА у вас возникла проблема с памятью, поскольку эти просочившиеся узлы в конечном итоге похоронили бы браузер.

Но просто увеличивать использование памяти загрузкой изображений не о чем,как обычный расширенный сеанс серфинга, за исключением того, что вы просто загружаете несколько новых картинок.

0 голосов
/ 05 августа 2010

Если это слайд-шоу, вы показываете только одно изображение за раз?Если вы показываете только по одному за раз и никогда не избавляетесь от последнего показа, это всегда увеличивает память.Если вы удалите слайды, которые не отображаются, это должно помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...