<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
applicationComplete="appCompleteHandler();">
<mx:Script>
<![CDATA[
private function appCompleteHandler():void {
if (ExternalInterface.available) {
ExternalInterface.addCallback("getWidth", getWidth);
}
}
private function getWidth():Number {
return width;
}
]]>
</mx:Script>
</mx:Application>
Флешка вставлена через swfobject. В IE8 при перезагрузке страницы видно, что память отданная под страничку с флешом не освобождается, что приводит к падению браузера через несколько перезагрузок. Немного поискав, нашел в swfobject 2.2 метод:
swfobject.removeSWF(objElemIdStr)
Removes a SWF from your web page. Is especially built to safely (only remove a SWF after it has been loaded, to avoid broken references) and completely (nullify references to avoid memory leaks) remove a SWF in Internet Explorer.
И помогло :)
2 комментария:
Пол года назад у меня был проект насыщенный графикой, в ходе которого клиент съел мне весь моск по поводу утечек. Пришлось готовый проект переписывать почти заново, избавлятся от динамически создаваемых объектов, переносить методы в статику и тд.
Под конец понял, что нужно было просто сразу посылать, т.к. в IE память течёт подефолту, т.е. это не всегда связано с качеством кода!
Есть подтвержденные сообщения, что особенно ослу становится хреново если установлен плагин от Skype (скайп обещал исправится, может уже пофиксили)
Короче очень больная тема, если кто-то столкнется с ней - не завидую, т.к. зачастую решения проблемы может и не быть. Вдвойне обидно если ситуация с утечками всплывает под конец проекта.
Oдно радует, пройдя чере всё это, ты уже как-то иначе думаешь и экономнее (с точки зрения памяти) пишешь код ...
Про скайп знаю, но такового не стоит. Как же послать человека с IE? :)
Отправить комментарий