Một trong những quyết định thiết kế đằng sau giới thiệu phạm vi là để giảm bớt khả năng quản lý bộ nhớ. Bằng cách phân vùng không gian của mô hình thành các phần phụ (phạm vi), chúng ta có thể loại bỏ các phần không cần thiết của mô hình (phạm vi) và thêm mới khi cần thiết. Vì vậy, có, phạm vi là một phần quan trọng của toàn bộ câu đố quản lý bộ nhớ.
Khi nói đến câu hỏi cụ thể của bạn về ng-view
- chỉ thị này sẽ chỉ giữ phạm vi cho chế độ xem hiện hoạt hiện đang hoạt động. ng-view
là một trong các chỉ thị tạo phạm vi (và phạm vi hủy!). Nó sẽ tự động tạo một phạm vi mới khi chế độ xem mới được điều hướng đến và sẽ tự động hủy một phạm vi được kết nối với chế độ xem cũ. Điều này có thể dễ dàng xác minh trong AngularJS source code.
Phần bộ nhớ duy nhất cần xem xét là các mẫu được tìm nạp qua mạng. Tất cả các mẫu được tham chiếu trong một tuyến đường được lưu trong bộ nhớ cache trong số $templateCache
. Bạn có thể loại bỏ các mẫu sử dụng một cách tiết kiệm nếu bạn xác định rằng nó xử lý một nút cổ chai hoàn hảo cụ thể trong ứng dụng của bạn. Chúng ta chỉ cần nhận ra rằng đó là thời gian giao dịch (thời gian mạng) để tiêu thụ bộ nhớ.
Tóm lại: không cần phải triển khai phạm vi quản lý của riêng bạn cho ng-view
- nếu bạn thấy bất kỳ lưu giữ phạm vi nào, báo cáo sẽ bị báo cáo là lỗi.
Nguồn
2013-06-05 20:43:16
Có, js có bộ sưu tập rác. Nhưng nó sẽ không thu thập bất cứ điều gì mà nó tin rằng đang được sử dụng. Với góc cạnh, nó giả định rằng các phạm vi $ vẫn được sử dụng, do đó nó sẽ không bao giờ thu thập nó. Vì vậy, tôi hỏi làm thế nào để tôi cần phải làm gì trong Angular để đảm bảo nó có thể được thu thập. – mfrancis107
Bạn luôn có thể sử dụng "xóa"? –
@KGChristensen Đó không phải là cách 'xóa' hoạt động? – rounce