Я получаю jQuery.Deferred
где-то в своем коде, и добавляю к нему несколько обратных вызовов, которые являются членами методов недолговечных объектов. Мне было интересно, есть ли какой-либо потенциал утечки памяти в этой ситуации, подобно тому, как в обработчиках событий .NET.Существуют ли потенциальные утечки памяти при использовании отложенных данных?
Я проверял код jQuery
, но не видел никакой части, где обратные вызовы очищаются. Я даже не нашел, где должен заканчиваться жизненный цикл отложенного объекта.
Не могли бы вы пролить свет на эту тему?
EDIT
Как я думаю об этом, это сужает к этому вопросу. В JavaScript будет содержать ссылку на функцию-член объекта (а не прототип), чтобы объект не был GC-d? Поскольку jQuery, похоже, удерживает эти ссылки функций в обратных вызовах отложенного объекта.
Я не уверен, как ответить на этот вопрос. На любом языке, который может содержать ссылку, существует риск утечки памяти. Это все о том, где вы берете эти ссылки и как они вписываются в дерево, на которое будет смотреть GC. – ssube
Мой вопрос в том, как jQuery внутренне обрабатывает его, делает ли он отложенный объект каким-то образом в какой-то момент и т. Д. –
Это может помочь: https://auth0.com/blog/four-types-of-leaks-in -your-javascript-code-and-how-to-get-rid-of-them/ – Sparrow