Одним из конструктивных решений, связанных с внедрением областей, было упрощение управления памятью. Разделив пространство модели на части (области), мы можем удалить ненужные части модели (область) и добавить новые, когда это необходимо. Так что да, области являются важной частью всей головоломки управления памятью.
Когда речь заходит о вашем конкретном вопросе о ng-view
- эта директива будет сохраняться только для текущего активного . ng-view
является одним из способов создания (и уменьшения масштаба!) Директив. Он автоматически создаст новую область при переходе к новому представлению и автоматически уничтожит область, связанную со старым представлением. Это легко проверить в AngularJS source code.
Единственная часть памяти, которую нужно учитывать, - это шаблоны, полученные по сети. Все шаблоны, указанные в маршруте, кэшируются в $templateCache
. Вы можете вырезать шаблоны, используя экономно, если вы определите, что он решает конкретное узкое место в вашем приложении. Нам просто нужно понять, что это время торговли (время сети) для потребления памяти.
Вкратце: нет необходимости развертывать собственное управление областью для ng-view
- если вы видите какое-либо удерживание области, это должно быть сообщено как ошибка.
Да, у js есть сбор мусора. Но он не будет собирать ничего, что, по его мнению, будет использоваться. С угловым он предполагает, что $ scopes все еще используется, поэтому он никогда не будет его собирать. Поэтому я спрашиваю, как мне нужно делать в Angular, чтобы убедиться, что он может быть собран. – mfrancis107
Вы всегда можете использовать «delete»? –
@KGChristensen Это не так, как работает 'delete'? – rounce