gpt4 book ai didi

javascript - Angularjs 如何使用 ngView 处理内存管理?

转载 作者:行者123 更新时间:2023-12-03 08:16:03 25 4
gpt4 key购买 nike

当您使用具有 100 个不同 View 的 ngView 时,每个 View 具有不同的范围。 Angular 会自动处理销毁旧模板/作用域还是保留在内存中?在我开始编写自定义代码以减少内存负载之前,我只是好奇 Angular 是否会自行处理这个问题。到目前为止,我去的每个新 View 都只是堆积在内存中。

这是一个 AngularJS 特定的问题。我知道垃圾收集在 javascript 中是如何工作的。

最佳答案

引入范围背后的设计决策之一是简化内存管理。通过将模型的空间划分为子部分(范围),我们可以删除模型(范围)中不需要的部分,并在需要时添加新部分。所以是的,作用域是整个内存管理难题的重要组成部分。

当涉及到您关于 ng-view 的具体问题时- 该指令将只保留当前事件 View 的范围。 ng-view是作用域创建(和作用域破坏!)指令之一。当导航到新 View 时,它将自动创建一个新范围,并自动销毁与旧 View 连接的范围。这可以在 AngularJS source code 中轻松验证.

唯一需要考虑的内存消耗部分是通过网络获取的模板。路由中引用的所有模板都缓存在 $templateCache 中。 .如果您确定模板解决了应用程序中的特定性能瓶颈,您可以谨慎地使用模板。我们只需要意识到这是内存消耗的交易时间(网络时间)。

简而言之:无需为 ng-view 推出自己的范围管理。 - 如果您看到任何范围保留,则应将其报告为错误。

关于javascript - Angularjs 如何使用 ngView 处理内存管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16947957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com