search
HomeWeb Front-endHTML TutorialWeb performance optimization series (2): Analyzing page drawing time_html/css_WEB-ITnose

This article was translated by Bole Online - J.c and proofread by sunbiaobiao. Reprinting without permission is prohibited!
English source: www.deanhume.com. Welcome to join the translation team.

Recently, I attended the Facebook Mobile Developer Conference in London. During that day, there were a lot of conversations, but what really caught my attention was a performance session called "Making m.facebook.com faster", which was about Facebook How to continually strive to improve web page performance and lessons learned from it.

The Facebook development team uses Chrome Cannry to test the web page's CSS performance. Google Chrome Canary has the latest features of Chrome and allows you to try out some of the latest features that will soon become the standard version of Chrome. Considering that Chrome Canary is a "preview version" specially designed for developers and early adopters, sometimes there will be some bugs caused by the rapid iteration of the Chrome development team. Still, it has some great developer tools to help you test the performance of your web pages.

In this article, I show you how to use Chrome Canary’s developer tools to locate parts of your CSS that may cause slow scrolling and affect the page’s performance. Draw time. When a browser loads and draws a page, it needs to iterate through all visible elements in order to "draw" and get the content to appear on the screen. As this relies on layout and complex CSS, you may find that draw times can be very long. This can cause web pages to appear choppy and slow to respond. This kind of slow scrolling is also called jank (jank is a professional term in the Android system, which refers to the lag phenomenon that interrupts the smooth dynamic picture on the screen). This is even more apparent when scrolling on mobile devices, where the browser struggles to draw complex CSS.

Even if the page load time is very fast, it is still worth studying the page draw time. Different devices react differently to CSS properties, but regardless, improving performance is always a good thing. In order to test, you must first go to the Google Chrome website to download Chrome Canary. Once the installation is complete, you can open the web page you want to test. There is a good case study website on the HTML5 Rocks website. We use it to prove that the operation of high-energy-consuming CSS properties will increase the drawing time of the page.

Once you open this webpage, press F12, and the developer tools of Chrome will pop up. Then click the Settings button on the bottom right side of the developer tools to turn on the settings for testing page rendering performance.

Clicking will display a control panel that allows you to change settings.

Because we want to test the rendering performance of the page, select "Enable continuous page repainting (page continues to be repainted) " and "Show FPS meter (display FPS meter)". If you close the settings panel and view your page, you should see the image below in the upper right corner of the page.

The table shows the time required to draw the current page in milliseconds, while the right side shows the minimum and maximum values ​​of the current chart. In addition, a tree diagram of the last 80 frames is also displayed. The power of this chart is that it constantly attempts to redraw the page, making it appear as if the page is loading for the first time. This allows you to pinpoint drawing issues caused by CSS without having to reload the page every time. Whether your changes have an impact or not, the treemap will continuously monitor it.

If we look at the HTML and CSS of this page in detail, you will see that one of the divs has some CSS effects added to it.

This div has border-radius (rounded corners) and projection attributes. When removing the box-shadow attribute, observe the changes in the FPS meter during drawing time.

Wow! As you can see from the chart, there is an interesting change in page draw times. By simply removing the border-radius attribute, it can be seen that this change can significantly reduce the drawing time of the page. When you update or change the CSS properties, this chart immediately drops. Using both box-shadow and border-radius on the same element will cause a very heavy drawing load because the browser cannot optimize for it. If there is an element that needs to be redrawn frequently, you should keep this in mind when building the page.

Here’s a great video from the Google IO website that goes into more depth about draw times and introduces some tips for reducing “jank” on web pages.

If you want to learn more about draw time optimization, check out these links.

Happy testing!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Difficulty in updating caching of official account web pages: How to avoid the old cache affecting the user experience after version update?Difficulty in updating caching of official account web pages: How to avoid the old cache affecting the user experience after version update?Mar 04, 2025 pm 12:32 PM

The official account web page update cache, this thing is simple and simple, and it is complicated enough to drink a pot of it. You worked hard to update the official account article, but the user still opened the old version. Who can bear the taste? In this article, let’s take a look at the twists and turns behind this and how to solve this problem gracefully. After reading it, you can easily deal with various caching problems, allowing your users to always experience the freshest content. Let’s talk about the basics first. To put it bluntly, in order to improve access speed, the browser or server stores some static resources (such as pictures, CSS, JS) or page content. Next time you access it, you can directly retrieve it from the cache without having to download it again, and it is naturally fast. But this thing is also a double-edged sword. The new version is online,

How to efficiently add stroke effects to PNG images on web pages?How to efficiently add stroke effects to PNG images on web pages?Mar 04, 2025 pm 02:39 PM

This article demonstrates efficient PNG border addition to webpages using CSS. It argues that CSS offers superior performance compared to JavaScript or libraries, detailing how to adjust border width, style, and color for subtle or prominent effect

How do I use HTML5 form validation attributes to validate user input?How do I use HTML5 form validation attributes to validate user input?Mar 17, 2025 pm 12:27 PM

The article discusses using HTML5 form validation attributes like required, pattern, min, max, and length limits to validate user input directly in the browser.

What is the purpose of the <datalist> element?What is the purpose of the <datalist> element?Mar 21, 2025 pm 12:33 PM

The article discusses the HTML <datalist> element, which enhances forms by providing autocomplete suggestions, improving user experience and reducing errors.Character count: 159

What is the purpose of the <progress> element?What is the purpose of the <progress> element?Mar 21, 2025 pm 12:34 PM

The article discusses the HTML <progress> element, its purpose, styling, and differences from the <meter> element. The main focus is on using <progress> for task completion and <meter> for stati

What are the best practices for cross-browser compatibility in HTML5?What are the best practices for cross-browser compatibility in HTML5?Mar 17, 2025 pm 12:20 PM

Article discusses best practices for ensuring HTML5 cross-browser compatibility, focusing on feature detection, progressive enhancement, and testing methods.

What is the purpose of the <meter> element?What is the purpose of the <meter> element?Mar 21, 2025 pm 12:35 PM

The article discusses the HTML <meter> element, used for displaying scalar or fractional values within a range, and its common applications in web development. It differentiates <meter> from <progress> and ex

What is the purpose of the <iframe> tag? What are the security considerations when using it?What is the purpose of the <iframe> tag? What are the security considerations when using it?Mar 20, 2025 pm 06:05 PM

The article discusses the <iframe> tag's purpose in embedding external content into webpages, its common uses, security risks, and alternatives like object tags and APIs.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor