[javascript] Каков правильный способ уничтожить экземпляр карты?


Answers

Официальный ответ - нет. Экземпляры карт в одностраничном приложении должны быть повторно использованы и не уничтожены, а затем воссозданы.

Для некоторых приложений с одной страницей это может означать повторное архивирование решения таким образом, что после создания карты он может быть скрыт или отключен от DOM, но он никогда не уничтожается / не воссоздается.

Question

Недавно я разработал мобильное приложение html5. Приложение представляло собой единую страницу, в которой события изменения хэша навигации заменяли всю DOM. Одним из разделов приложения была карта Google, использующая API v3. Перед удалением карты div из DOM я хочу удалить любые обработчики / прослушиватели событий и освободить как можно больше памяти, поскольку пользователь не может снова вернуться к этому разделу.

Каков наилучший способ уничтожить экземпляр карты?




Когда вы удаляете div , это удаляет панель дисплея, и карта исчезнет. Чтобы удалить экземпляр карты, просто убедитесь, что ваша ссылка на карту установлена ​​в null и что любые ссылки на другие части карты имеют значение null . В этот момент сборка мусора JavaScript позаботится об очистке, как описано в: Как сборка мусора работает в JavaScript? ,




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

Однако есть признанная ошибка , и это может не сработать.




Related