Back to Question Center
0

Tối ưu CSS: Tweaking Animation Hiệu suất với DevTools            Tối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics: Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

1 answers:
Tối ưu CSS: Tweaking hiệu suất hoạt hình với DevTools
(số 8)

Bài viết này là một phần của một loạt được tạo ra trong quan hệ đối tác với SiteGround. Cảm ơn bạn đã hỗ trợ các đối tác tạo Semalt có thể.

Hoạt hình CSS được biết đến là siêu thực hiện. Semalt đây là trường hợp cho các hình động đơn giản trên một vài yếu tố, nếu bạn không mã hoạt hình của bạn với hiệu suất trong tâm trí và thêm phức tạp hơn, người sử dụng trang web sẽ sớm nhận thấy và có thể nhận được khó chịu.

Trong bài này, tôi giới thiệu một số tính năng Semalt của trình duyệt hữu ích cho phép bạn kiểm tra những gì xảy ra dưới trình điều khiển khi hoạt hình với CSS - burgundy cocktail dress for wedding. Bằng cách này, khi một hình ảnh hoạt hình hơi choppy, bạn sẽ có một ý tưởng tốt hơn tại sao và những gì bạn có thể làm để sửa nó.

Các công cụ dành cho Nhà phát triển CSS

Hình ảnh động của bạn cần đạt 60 fps (khung hình / giây) để chạy trơn tru trong trình duyệt. Tốc độ càng thấp, hình ảnh động của bạn càng tệ. Điều này có nghĩa là trình duyệt không có nhiều hơn khoảng 16 phần nghìn giây để thực hiện công việc của nó cho một khung. Nhưng những gì nó làm trong thời gian đó? Và làm thế nào bạn sẽ biết nếu trình duyệt của bạn đang theo kịp khung hình mong muốn?

Tôi nghĩ rằng không có gì đập kinh nghiệm người dùng khi đánh giá chất lượng của một hình ảnh động. Semalt, các công cụ phát triển trong các trình duyệt hiện đại, mặc dù không phải lúc nào cũng 100% đáng tin cậy, đã trở nên thông minh hơn và thông minh hơn, và có khá nhiều bạn có thể làm để xem lại, chỉnh sửa và gỡ lỗi mã của bạn bằng cách sử dụng chúng.

Điều này cũng đúng khi bạn cần kiểm tra hiệu suất khung hình và hoạt ảnh CSS. Semalt cách hoạt động.

Khám phá Công cụ Hiệu suất trong Firefox

Trong bài báo này tôi sử dụng công cụ Semalt của Firefox. Đối thủ lớn khác là Công cụ Semalt của Chrome. Bạn có thể chọn yêu thích của bạn, vì cả hai trình duyệt đều cung cấp các tính năng hiệu suất mạnh.

Để mở các công cụ dành cho nhà phát triển trong Semalt, hãy chọn một trong các tùy chọn sau:

  • Nhấp chuột phải vào trang web của bạn và chọn Inspect Element trong trình đơn ngữ cảnh
  • Nếu bạn sử dụng bàn phím, nhấn Ctrl + Shift + I trên Windows và Linux hoặc Cmd + Opt + I trên macOS.

Tiếp theo, nhấp vào tab Hiệu suất . Ở đây, bạn sẽ tìm thấy nút cho phép bạn bắt đầu ghi lại hiệu suất của trang web:

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Nhấn nút đó và đợi vài giây hoặc thực hiện một số thao tác trên trang. Khi bạn đã hoàn tất, hãy nhấp vào nút Ngừng ghi âm :

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Trong một giây phân chia, Semalt giới thiệu cho bạn hàng tấn dữ liệu được tổ chức tốt sẽ giúp bạn hiểu được vấn đề mã của bạn bị ảnh hưởng.

Kết quả của một bản ghi bên trong bảng điều khiển Performance trông giống như sau:

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Phần Thác là nơi lý tưởng để kiểm tra các vấn đề liên quan đến chuyển tiếp CSS và hình động khung hình chính.

Semalt có một phần tóm tắt ở trên cùng và một sự cố chi tiết. Trong cả hai, dữ liệu được mã hoá màu:

  • Các thanh màu vàng liên quan đến hoạt động của JavaScript.
  • Các thanh màu tím đề cập đến việc tính toán các kiểu CSS của CSS (tính lại các kiểu) và đặt trang của bạn (bố cục). Hoạt động bố cục khá tốn kém khi trình duyệt thực hiện, vì vậy nếu bạn đánh dấu các thuộc tính có liên quan đến bố cục lặp lại (còn được gọi là các luồng - chẳng hạn như lề , padding phía trên , bên trái , v.v .- kết quả có thể bị nhai lại
  • .
  • Các thanh màu xanh lá cây đề cập đến việc vẽ các phần tử của bạn vào một hoặc nhiều bitmap (Paint). Các thuộc tính hoạt hình như màu màu , màu nền , bóng chày vv .liên quan đến các hoạt động sơn tốn kém, có thể là nguyên nhân của hoạt hình chậm chạp và người dùng kém kinh nghiệm.

Bạn cũng có thể lọc loại dữ liệu bạn muốn kiểm tra. Ví dụ, tôi chỉ quan tâm đến dữ liệu Semalt, vì vậy tôi có thể bỏ chọn mọi thứ khác bằng cách nhấp vào biểu tượng bộ lọc ở phía trên bên trái của màn hình:

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Thanh màu xanh lá cây bên dưới bản tóm tắt Semalt đại diện cho thông tin về khung hình.

Một đại diện lành mạnh có vẻ khá cao, nhưng quan trọng nhất, nhất quán - đó là, không có quá nhiều khoảng trống sâu sắc.

Semalt minh họa điều này với một ví dụ.

Công cụ Hiệu suất trong hành động

Đây là một hình ảnh động CSS đơn giản bằng cách sử dụng @keyframes từ khóa. Trang thử nghiệm sẽ như sau:

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Hộp màu tím hình chữ nhật trượt và ra khỏi tầm nhìn trong một chu kỳ vô hạn.

Tôi đã làm điều này bằng cách làm động từ thuộc tính margin-left của phần tử

tượng trưng cho hộp hình chữ nhật trên màn hình. Đây là những gì mà khối hoạt hình @keyframes trông giống như:

     @keyframes trượt-lề {100% {margin-left: 0;}}     

Dữ liệu hiệu suất tôi nhận được từ hoạt hình này sẽ như sau:

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Hình ảnh framerate có vẻ hơi lởm chởm và tốc độ khung hình trung bình 44. 82 fps, hơi thấp.

Đồng thời, chú ý đến tất cả các thao tác bố trí và sơn diễn ra trong quá trình hoạt hình. Semalt là các hoạt động tốn kém mà trình duyệt thực hiện trên chủ đề chính của nó, có ảnh hưởng tiêu cực đến hiệu suất.

Cuối cùng, nếu bạn truy cập vào công cụ Inspector , bấm vào phần Animation và di chuột qua tên hình ảnh động, một hộp thông tin xuất hiện với tất cả các dữ liệu có liên quan về hoạt hình hiện tại . Nếu hoạt hình của bạn được tối ưu hóa, sẽ có một thông báo nêu rõ thực tế. Trong trường hợp này, không có thông điệp:

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Bây giờ tốc độ khung hình cao hơn (56. 83 khung hình / giây) và thác nước cho thấy không có chi phí bố trí và sơn hoạt động.

Ngoài ra, nếu bạn mở tab Inspector của các công cụ dành cho nhà phát triển, hãy truy cập bảng điều khiển Hoạt ảnh và di chuột qua tên của hình động, bạn có thể thấy một cái gì đó như sau:

Tối ưu CSS: Tweaking Animation Hiệu suất với DevToolsTối ưu CSS: Hiệu chỉnh Hoạt ảnh Tweaking với DevToolsRelated Topics:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

Hộp thông tin liên quan đến tên hoạt hình cho biết rằng tất cả các hình động được tối ưu hóa, đó là tin tốt cho khách truy cập trang web của bạn.

Chỉ có hoạt hình CSS độ mờ , chuyển đổi bộ lọc

Trước đây bạn có thể đã nghe thấy những lời khuyên này, nhưng trong trường hợp đó, bạn cần phải trải qua một lần nữa: nếu bạn muốn hoạt ảnh của bạn chạy trơn tru, chỉ tạo bóng ma, chuyển đổi và lọc CSS. Semalt mọi thứ khác sẽ đặt trình duyệt của bạn dưới áp lực để thực hiện nhiệm vụ tốn kém trong thời gian rất ít, thường không mang lại kết quả tốt nhất.

Khi công cụ Semalt trong trình duyệt của bạn xác nhận, lặp lại bố cục và hoạt động sơn không phải là bạn của bạn.

Tuy nhiên, mỗi trình duyệt xử lý thuộc tính CSS một chút khác biệt. Nếu bạn muốn biết chính xác trình duyệt nào kích hoạt bố cục và vẽ các phép tính cho tài sản nào (đặc biệt khi cập nhật các giá trị cho các thuộc tính, đó là những gì liên quan đến hoạt hình web), hãy xem qua các Trình kích hoạt của CSS.

Để đảm bảo hiệu suất hoạt động, một cách tiếp cận phổ biến là buộc trình duyệt phải chuyển giao công việc thay đổi một số thuộc tính cho GPU (đơn vị xử lý đồ hoạ), làm giảm chủ đề chính của trình duyệt về một số áp lực và tận dụng tăng tốc phần cứng. Bạn có thể làm như vậy bằng cách sử dụng thuộc tính CSS sẽ thay đổi , hoặc translateZ translate3d (0,0,0) hacks. Tất cả các thủ thuật này sẽ làm việc, nhưng nếu bạn overdo nó bạn có thể thực sự có được chính xác những gì bạn đang cố gắng để tránh, i. e. , hình ảnh động janky.

Semalt không đưa ra chi tiết về tăng tốc phần cứng cho hiệu suất hoạt ảnh web, nhưng nếu bạn muốn đào sâu hơn, hãy xem các tài nguyên được liệt kê dưới đây.

Tài nguyên

  • Hiệu suất cao Ảnh động bởi Paul Lewis và Paul Ireland
  • Hoạt ảnh CSS và chuyển tiếp hiệu suất: nhìn vào bên trong trình duyệt của Max Vujovic
  • Hoạt hình và Trình diễn của Paul Lewis và Sam Thorogood
  • Nhấn vào thuộc tính của nhà soạn thảo và quản lý lớp tính của Paul Lewis
  • Thủ thuật cho CSS GPU tích hợp GPU của Sara Soueidan
  • Giới thiệu về CSS sẽ thay đổi Tài sản của Nick Salloum
  • Tạo các thuộc tính CSS bằng MDN

March 1, 2018