Tôi đang nâng cấp một dự án góc 1 lớn từ 1.3.x lên 1.6.x vì chúng tôi yêu cầu một số bản vá trong phiên bản mới nhất. Sau khi cập nhật, có vẻ như toàn bộ ứng dụng đã làm chậm đáng kể. Tôi đã xem xét tài liệu di chuyển nhưng có bất kỳ điều gì có thể gây ra chậm lớn không? Bất kỳ mã xấu hoặc gotchas có thể gây ra điều này? Tôi đang gặp vấn đề chỉ với những thay đổi trực quan như ng-show và ng-hide bị chậm và co giật.Các vấn đề về hiệu suất di chuyển góc 1.x
Đây là hồ sơ cá nhân CPU trước khi nâng cấp:
Đây là hồ sơ cá nhân CPU sau khi nâng cấp:
Cảm ơn bạn!
CHỈNH SỬA:
Hãy để tôi cung cấp thêm một chút ngữ cảnh. Tôi có cảm giác điều này liên quan đến chu trình tiêu hóa. Ví dụ, tôi là một thanh điều hướng nơi một biểu tượng sẽ ẩn và một biểu tượng khác sẽ hiển thị trên di chuột.
Đây là những gì nó trông giống như trong góc 1,3
Đây là những gì nó trông giống như trong góc 1,6
Tôi nhận được một cảnh báo hiệu suất reflow cưỡng bức sau khi cập nhật. Ngoài ra điều này (tính toán lại kiểu) được định hướng từ hàm computeCssStyles của angular-animate (hoặc ít nhất đó là dòng mã mà nó hướng tôi tới). Tôi cũng không gọi bất kỳ $ animate nào trong mã của tôi. Đây có phải chỉ là một sản phẩm của phương pháp tiêu hóa góc? Ngoài ra, có bất kỳ điều gì tôi thiếu trong tài liệu di chuyển về các thay đổi có thể có để tiêu hóa không?
Ví dụ mã: showDropdown được thay đổi từ false thành true trên di chuột và ngược lại.
<i> ng-show="! showDropdown" </i><i> ng-show="showDropdown" </i>
EDIT: sửa chữa ngắn hạn như tôi không sử dụng động bất cứ nơi nào trong mã của tôi, nhưng nó dường như được bắn theo phương pháp mới hơn góc tiêu hóa. Tôi chỉ tắt hoạt ảnh dưới dạng bản sửa lỗi ngắn hạn một phần.
$animate.enabled(false);
Tôi biết có thể mất nhiều thời gian, nhưng việc sử dụng ng-if thay vì ng-show/hide thì sao? nếu bạn đang ẩn các chỉ thị, chúng sẽ vẫn chạy, với ng-nếu chúng không được biên dịch trừ khi cần thiết - đó là ít đồng hồ hơn trong thời gian chạy khi bị ẩn. Ngoài ra, bạn có ý nghĩa gì về thay đổi trực quan? sao mô hình của bạn cần được đánh giá nếu bạn chỉ hiển thị/ẩn hình ảnh? Có lẽ bạn có thể làm một số công việc trên nó để chu kỳ tiêu hóa không phải là bắn –
@ Gonzalo.- Tôi sẽ cho ng-nếu một thử. Tôi sẽ chỉ phải thay đổi điều đó qua rất nhiều chỉ thị. Những thay đổi trực quan tôi đang nói về đơn giản như một thanh điều hướng. Nơi chúng tôi có hai biểu tượng khác nhau ẩn và hiển thị dựa trên biến. ' ng-show = "! ShowDropdown" ng-show = "showDropdown"' Khi biến showDropdown thay đổi nó cho thấy cả hai trong một khoảnh khắc thứ hai và sau đó ẩn khác. – Alexg2195
Không chắc rằng câu hỏi có thể được trả lời. Nó đòi hỏi một ví dụ có thể tái tạo vấn đề. Thực tế là các bộ phận trực quan có liên quan nói không có gì. Chúng chỉ được cập nhật trên thông báo. Tất nhiên, chúng sẽ phơi bày độ trễ - bởi vì chúng là trực quan. – estus