NO.
Более полный ответ: возможно.Тот факт, что вы спрашиваете так смутно, является сильным сигналом о том, что вам лично вряд ли стоит беспокоиться.
На практике подавляющее большинство кода JavaScript просто не беспокоится об этом и не нуждается в этом.беспокоиться об этом, потому что только при определенных обстоятельствах утечки памяти на страницах в конечном итоге влияют на пользователей.Браузер и фреймворки очень хорошо охватывают вашу задницу.
Есть только несколько вопросов, на которые вам нужно ответить:
В: Поддерживаете ли вы полнофункциональное одностраничное приложение, которое интенсивно использует JavaScript?
Если нет, то не тратьте время на беспокойство.Если вы (или ваш QA, или ваши клиенты) обнаружите проблему чрезмерного использования памяти со страницей, то исправьте ее, когда она появится.
Q: Вам нужна поддержка мобильных устройств, и у вас тяжелый JavaScriptиспользование?
Мобильные устройства имеют ограниченную память, и необходимо проявлять особую осторожность.
Если вы разрабатываете тяжелое JavaScript-приложение и вам нужно беспокоиться об использовании памяти, тогда...
Проблема "грязных" ссылок на объекты, которые приводят к тому, что объекты JavaScript и объекты DOM никогда не собирают мусор, важна для определенных типов приложений JavaScript.Кеши, которые растут вечно, неожиданные глобальные ссылки и неожиданные ссылки внутри замыканий могут быть проблемой.
Может помочь инструмент «Снимок кучи» в Chrome Web Inspector.
Вот пример проекта git, который имеетполезно писать и обходить объекты javascript: https://github.com/tlrobinson/leakhelper
Существуют и другие инструменты, которые могут вам помочь, но я написал свой со временем: 1. наша структура помечает удаленные виджеты, поэтому я написал код для обхода всехмассивы и объекты из окна или документа, ищущие пути к удаленным объектам (код javascript не может пройти замыкания, но он определенно помог найти некоторые утечки).2. Другой трюк, который я использовал, был, когда виджет x был удален, я делаю x.leakhelper = window.createElement ('leakhelper') и setAttribute oid виджета, но не добавляю элемент в документ.Если элемент DOM является , а не собранным мусором, то виджет должен иметь где-то висячую ссылку на него.В IE используйте window.collectGarbage () для принудительной установки GC и используйте sIEve для обнаружения утечек DOM-элемента (я считаю, что sIEve действительно полезен).
Устаревший вопрос: вам нужна сильная поддержка либо IE6, либоIE7 а вы JavaScript активно используете?Большинство страшных утечек, о которых вы читали раньше, происходят только в