In the default configuration of the current PHP version, "Output Buffering" is turned on of. This is not the case in older versions of PHP. In older versions of PHP, every time a string is output (through the echo or print function), it will trigger an action sent to the client browser.
The introduction of "output buffering" makes this process faster and more efficient. The buffer actually opens up an area in the memory, which can be thought of as a large string in the memory. When there are characters to be output in the program, the content to be output will be appended to the buffer, which is used to replace the method of outputting directly to the browser every time in the old version of PHP. When the buffer is "refreshed", it is uniformly input to the user's browser. In the following situations, will cause the "refresh" operation of the buffer:
1. The PHP program is executed;
2. The size of the buffer area exceeds the output_buffering value set in the php.ini configuration file;
3. When the flush() or ob_flush() function is called.
In an actual production environment, we can speed up your site by refreshing the PHP buffer immediately after the head tag. The sample code is as follows:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Buffer flushing in action</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <link rel="shortcut icon" href="favicon.ico" /> </head> <?php // 这里强制刷新缓冲区 flush(); ?> <body> ...
The following explains the function of the above code:
When the browser receives the code in the head section of the page, it can start downloading the resources included in the head section, such as CSS files, site favorite icons (Favicon), etc. The downloading of these contents can be synchronized with the time when the browser accepts the content of the body segment.
How much it can be accelerated depends on local conditions. This depends on many objective conditions, including the response speed of the server, the size of your page, the size and number of your CSS files, whether the browser has a local cache, etc. Of course there are many factors, but such a small optimization can obviously speed up your site. Why not?
I really hope you will apply this little trick to your own website and track the actual results. Looking forward to your feedback.