현재 PHP 버전의 기본 구성에서는 "출력 버퍼링"이 켜져 있습니다. 이전 버전의 PHP에서는 그렇지 않습니다. 이전 버전의 PHP에서는 문자열이 출력될 때마다(에코 또는 인쇄 기능을 통해) 클라이언트 브라우저로 전송된 작업이 트리거됩니다.
"출력 버퍼링"의 도입으로 이 프로세스가 더욱 빠르고 효율적으로 이루어졌습니다. 버퍼는 실제로 메모리의 한 영역을 엽니다. 이는 메모리의 큰 문자열로 간주될 수 있습니다. 프로그램에 출력할 문자가 있는 경우 출력할 내용을 버퍼에 추가하는데, 이는 이전 버전의 PHP에서 매번 브라우저에 직접 출력하던 방식을 대체하는데 사용됩니다. 버퍼가 "새로 고침"되면 사용자의 브라우저에 균일하게 입력됩니다. 다음 상황에서는 이 버퍼의 "새로 고침" 작업을 수행합니다.
1. PHP 프로그램이 실행됩니다.
2. 버퍼 영역의 크기가 php.ini 구성 파일에 설정된 출력_버퍼링 값을 초과합니다.
3. 플러시() 또는 ob_flush() 함수가 호출될 때.
실제 제작 환경에서는 head 태그 바로 뒤의 PHP 버퍼를 새로 고치면 사이트 속도를 높일 수 있습니다.
<!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> ...
다음은 위 코드의 기능을 설명합니다.
브라우저가 페이지의 헤드 섹션에서 코드를 수신하면 CSS 파일, 사이트 즐겨찾기 아이콘(파비콘) 등과 같이 헤드 섹션에 포함된 리소스 다운로드를 시작할 수 있습니다. 이러한 콘텐츠의 다운로드는 브라우저가 본문 세그먼트의 콘텐츠를 수락하는 시간과 동기화될 수 있습니다.
얼마나 가속화될 수 있는지는 현지 상황에 따라 다릅니다. 이는 서버의 응답 속도, 페이지 크기, CSS 파일의 크기 및 수, 브라우저에 로컬 캐시가 있는지 여부 등 다양한 객관적인 조건에 따라 달라집니다. 물론 많은 요인이 있지만 이렇게 작은 최적화만으로도 사이트 속도를 높일 수 있습니다.
이 작은 트릭을 자신의 웹사이트에 적용하고 실제 결과를 추적하시기 바랍니다. 귀하의 의견을 기다리겠습니다.