Progressive Rendering is a set of techniques used to improve the performance of a web page, especially in terms of how quickly content is displayed to users. Parts of the page are displayed and loaded gradually, instead of the entire page loading at once. The goal is to display the content as quickly as possible, thereby improving the perceptual loading time - the time during which the user perceives that the page is loading.
Faster display time - Users see the first content faster, which improves the user experience, especially on slower networks.
Optimization for weaker devices - Less powerful devices can more easily display initial content without lag.
SEO uses - Search engines index initially loaded elements, which helps in better page ranking.
Techniques used for progressive rendering include lazy loading for images and other resources, server-side rendering (SSR), and client-side hydration code SPA application.
While progressive rendering was especially important in the days when the internet was slower, it is still useful in today's development due to the widespread use of mobile networks which can be unreliable. Here are some techniques used for progressive rendering.
In this technique, the images on the page are not loaded all at once. Instead, images are loaded only when the user scrolls to the part of the page where the image is located. In this way, resources are used more economically and the page loads faster because only the most important content is displayed first.
<img src="image.jpg" loading="lazy" alt="Opis slike">
By "content above the fold" we mean content that is immediately visible in the browser without scrolling. In order for the page to display this key content as quickly as possible, only the necessary resources such as basic CSS and initial page rendering scripts need to be loaded.
Minimizing resources: When loading a page, you should only include the minimum amount of CSS, content, and scripts necessary to render the first part of the page. Other resources can be deferred using defer scripts or by monitoring events such as DOMContentLoaded or load, so that additional resources are loaded after the initial display.
This technique allows the server to send part of the HTML to the browser so that the page can be rendered immediately, while the remaining parts are loaded successively. This approach is especially useful for dynamic pages where the content comes from the server - a part of the page is displayed first, while other parts are added later.
Using or to load critical resources such as styles, scripts or fonts before they are needed. This allows content to load faster, especially for resources that are not immediately needed but are used later on the page.
Breaking the JavaScript code into smaller parts (chunks) that are loaded only when needed, thus reducing the initial volume of data that is downloaded.
Isolating and loading only the most important CSS for the initial page display, while the rest can be loaded asynchronously. This allows visual content to be rendered faster while the rest of the page loads in the background.
Rendering parts of the page on the server before they are sent to the user. This allows users to see content immediately without waiting for JavaScript to load, resulting in better performance and SEO.
Using PWA technology allows loading and accessing the application even when the user is not online, which reduces network load and enables fast loading of content even in conditions of poor internet connection.
Progressive rendering helps achieve faster content rendering, thereby reducing perceived load times. Regardless of faster internet connections, these techniques are still useful due to the increased use of mobile devices and the changing quality of mobile networks. In this way, you provide users with a better experience, with faster access to the most important information on your page.
The above is the detailed content of Progressive rendering: improving the performance of content display. For more information, please follow other related articles on the PHP Chinese website!