Tôi đang cố gắng xác định nguyên nhân gây chậm hoạt động cực độ trong hoạt ảnh. Như bạn có thể thấy (bên dưới) thời gian sơn đôi khi tăng đột biến và khiến tốc độ khung hình giảm xuống còn < 15 khung hình/giây.Xác định nguyên nhân của các khung hình thả xuống sử dụng hoạt ảnh CSS3
Tôi không thể hiển thị trang web, nhưng tôi có thể cho bạn biết rằng đó là không trọng lượng nhẹ ở mặt trước, đó là một trang web giới thiệu thiết kế, vì vậy có rất nhiều hình ảnh động lớn từ bên ngoài chế độ xem- Hải cảng. Tôi cần phải thiết lập cho dù đây chỉ là một cái gì đó họ sẽ phải đối phó với hoặc nếu bất cứ điều gì có thể được thực hiện để giảm thời gian sơn.
Tất cả hoạt ảnh được thực hiện bằng cách sử dụng các chức năng translate()
. CSS cho tập hợp hoạt ảnh cụ thể này theo:
.page {
height: 100%;
position: absolute !important;
-webkit-transform: translateY(100%);
transform: translateY(100%);
/**
* Override ng-animate-block-transition on this element. Has an important declaration.
*/
-webkit-transition: transform ease-in-out 0.5s !important;
transition: transform ease-in-out 0.5s !important;
}
.page.ng-show {
-webkit-transform: translateY(0);
transform: translateY(0);
}
.animate-in-enter-complete .page-peak .page.ng-show {
-webkit-transform: translateY(-3%);
transform: translateY(-3%);
}
.animate-in-enter-complete .page-peak .page.page-next {
-webkit-transform: translateY(95%);
transform: translateY(95%);
}
Và đây là tiểu sử mà tôi đã làm cho hoạt ảnh cụ thể này. Các lớp gốc là #document
, tôi là loại mới cho những công cụ này, nhưng điều đó có nghĩa là nó lại vẽ toàn bộ cây DOM?
Làm cách nào để tìm hiểu nguyên nhân gây ra điều đó?
tôi nghĩ rằng sẽ rất khó để biết những gì đang xảy ra ở đây mà không thể nhìn thấy nó trong hành động ... có lẽ bạn có thể sao chép một fiddle đơn giản cho thấy cùng một vấn đề? – Brewal
Đó là một trang web rất phức tạp, tôi không nghĩ rằng tôi sẽ có thể tái tạo vấn đề trong một câu chuyện. Tôi sẽ không thể hiển thị bất kỳ loại bản demo nào cho đến khi nó phát hành, mặc dù tôi sẽ xem liệu tôi có thể cho nó đi sau ngày hôm nay hay không. Tôi đã tìm kiếm nhiều hơn "làm thế nào để tôi đi về việc tìm kiếm nguyên nhân gốc rễ?". – rich97
Ho ok ... Bạn có biết gì về mod repainting liên tục không? Trong các công cụ dành cho nhà phát triển, bạn có một tùy chọn được gọi là "bật lại trang liên tục" (trong trường hợp của tôi trong tab "Hiển thị"). Nếu bạn kiểm tra nó, bây giờ bạn sẽ thấy một đồ thị thời gian lên bên phải. Sau đó hiển thị/ẩn một số DOM, bật/tắt một số quy tắc CSS và xem những gì mất quá nhiều thời gian để vẽ lại. Bạn có một bài tốt giải thích nó [ở đây] (http://updates.html5rocks.com/2013/02/Profiling-Long-Paint-Times-with-DevTools-Continuous-Painting-Mode) – Brewal