Как стать автором
Обновить

Комментарии 13

Примечание: ниже находится переврд статьи

Спасибо за перевод, пробежал мельком - мне интересно, сейчас буду читать более внимательно.
Утечки создают не замыкания сами по себе, а их реализация в IE. Автор оригинальной статьи об этом скромно умалчивает.
Кстати IE7 течёт не так сильно, и вполне можно с этим жить. Даже в сложных программах, например Jabber чате, где из замыканий формируются целые стеки.
Есть программка для отлова утечек, называется Drip.
Утечки создают не замыкания сами по себе, а их реализация в IE.

Чем интересно таким принципиальным реализация замыканий в IE отличается от реализации замыканий не в IE? Почти ничем, потому как в отличие от циклических ссылок замыкание - это чистый незамутнённый ECMAScript.

Автор оригинальной статьи об этом скромно умалчивает.

Справедливости ради автор ни о чём не умалчивает, ну, что за конспирология-то на пустом месте. Статья давно висит в Internet Explorer Developer Center, тот же Internet Explorer указан уже в названии статьи, а проблемы именно с Internet Explorer's COM infrastructure обозначены в первом же пункте, к тому же они названы ещё и самыми распространёнными...

Спасибо за перевод.
Статья дейстительно давно висит на MS DevCenter. Так же где то рядом в гугле видел происки то ли индуса то ли пакистанца в этом вопросе с выкладками скриншотов загруки ЦП и Памяти из таскменеджера.

За перевод спасибо, но честно говоря жаль... Когда я увидел заголовок, подумал что-то новенькое будет.
Ну, с другой стороны, как я понимаю, те же циклические ссылки создают утечки не только в IE, а в любом браузере (о чём название статьи тоже скромно умалчивает).
Про другие браузеры в статье сказано:
Обычно скриптовые движки нормально отрабатывают с циклическими ссылками при помощи собственных сборщиков мусора (garbage collectors)

:)
Как только замыкание становится функцией, оно больше не наследует параметры или локальные переменные от родительской функции, поэтому нам не нужно вообще волноваться по поводу циклических ссылок, вызываемых данным замыканием.

Чего?
Утечка зависит от сложности приложения. Действительно сложных приложений встречается не много
(пробую вспомнить и что-то не припомню кроме гугля).

В любом случае автор посторался и основательно разобрался в вопросе.
Статья сложна дла начинающих, но полезна для всех.
Да банальные плюсики/минусики справа от сообщений на этой странице и ссылка "ответить" с выпадающим текстовым полем уже вещи, в которых могут возникнуть описанные в статье проблемы.
При достаточно большом количестве комментариев на странице они могут возникнуть в пропорциональных объемах.
Про замыкания. Утечка там всё-таки не из-за самого замыкания, а из-за всё того же DOM/COM.
И решение имхо глупое.
Уж лучше тогда написать свою функцию установки обработчиков, которая сама бы отслеживала все всё что нужно и удаляла по onunload. Гораздо меньше геморроя прикладному программисту, не говоря о том, что в данной функции можно сделать еще множество полезных вещей.
prototype так и делает
Замечание не по теме:

Публиковать свои материалы на своём сайте — это крайне правильная идея, которая мне очень нравится, но использовать стандартный на Хабре текст ссылки на полный вариант — это обман ожиданий пользователя.

Я думаю, заинтересовавшийся темой человек легко нажмёт и ссылку типа «читать дальше на webo.in → », и при этом избежит возможных неприятных ощущений от смены ресурса.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации