Firefox Iframe Утечка памяти - PullRequest
0 голосов
/ 04 июня 2010

Мы работаем над приложением JavaScript, которое не работает без видимой причины.Природа приложения заключается в том, что оно использует JavaScript для перенаправления страницы каждые несколько секунд.и вращается через несколько веб-страниц в установленное количество времени.

Итак, в поисках потенциальной утечки памяти в нашем коде мы настроили ее на запуск в Firefox в течение нескольких дней.пока он работал, мы ежедневно обращали внимание на использование памяти Firefox.Это было так, как мы и подозревали.отпечаток ноги памяти вырос за это время.поэтому мы решили протестировать Firefox, используя следующую настройку: две HTML-страницы, на каждой из которых есть изображение.оба используют мета-редирект, чтобы поддерживать переключение между страницами.эти страницы отображаются в фрейме на 3-й странице.

Эта установка показала тот же результат.увеличение объема памяти с течением времени.тем не мение.Следует отметить, что мы протестировали эту же настройку в Firefox, но без Iframe, и не увидели увеличения использования памяти.

поэтому вопрос: есть идеи, что может быть причиной этого?или кто-нибудь знает, есть ли какие-либо утечки памяти в Firefox при использовании Iframe и перенаправления страниц?

Ответы [ 3 ]

1 голос
/ 29 июня 2013

Мы обнаружили утечку памяти в Firefox + iframes, подтвержденную в https://bugzilla.mozilla.org/show_bug.cgi?id=858615

Мы испытывали это здесь на Mac, используя этот код в html для ip-камеры

<tr>
<div class="box">
<iframe src="http://10.0.1.31:8031/mjpeg.cgi" width="460" height="345"
  class="smart_sizing_iframe noresize" frameborder="0" scrolling="no" >
</iframe>
</div>
</tr>

Safari не имеет этой проблемы.

0 голосов
/ 11 февраля 2013

В приложении, над которым я работаю, я наблюдал поведение в Firefox, где javascript в документе Iframe ссылается на родительский документ следующим образом:

$('#md-frame', window.parent.document).css('pointer-events','none');

Я заметил, что если вы перезагрузите src iframe, то весь javascript в iframe будет существовать дважды, как если бы было 2 экземпляра. Если вы обновите src iframe снова, все события в js iframe будут существовать 3 раза и т. Д. Так же и для меня это может быть очевидной утечкой памяти.

Вот так я перезагружаю iframe src:

$("#md-frame").attr('src',$("#md-frame").attr('src'));

Я пытался отменить привязку всех событий до того, как странное поведение связывает их, но мне не повезло.

Если у кого-то еще есть опыт с этим. Я был бы рад услышать об этом. Мы все еще обсуждаем эту проблему в Firefox.

0 голосов
/ 05 июня 2010

Скорость увеличения использования памяти со временем уменьшалась и в конечном итоге прекращалась или продолжала расти? Некоторое увеличение памяти ожидается в начале такого теста из-за фрагментации памяти.

Тестовый пример выложен где-нибудь?

...