>  기사  >  백엔드 개발  >  PHP에서 ob_flush와 플러시의 차이점 이해

PHP에서 ob_flush와 플러시의 차이점 이해

青灯夜游
青灯夜游앞으로
2020-03-31 16:39:022866검색

이 기사에서는 ob_flush와 플러시의 차이점을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP에서 ob_flush와 플러시의 차이점 이해

ob_flush/flush는 출력 버퍼를 플러시하는 것과 함께 사용해야 한다고 매뉴얼에 설명되어 있으므로 많은 사람들에게 혼란을 야기할 것입니다...

실제로는 서로 다른 개체에서 작동합니다. 어떤 경우에는 플러시가 전혀 수행되지 않습니다.

ob_* 함수 시리즈는 PHP 자체의 출력 버퍼를 작동합니다.

그래서 ob_flush는 PHP 자체 버퍼를 새로 고칩니다.

그리고 플러시는 엄밀히 말하면 이 작업만 수행할 수 있습니다. PHP에서 수행됩니다. Apache 모듈(핸들러 또는 필터)용으로 설치된 경우에만 실질적인 효과가 있습니다. WebServer의 버퍼를 새로 고칩니다(특히 Apache를 참조하는 것으로 간주될 수 있음).

. 물론 매뉴얼에도 언급되어 있습니다. Apache의 일부 다른 모듈은 이 작업의 결과를 변경할 수 있습니다.

apache modulesapi下, flush会通过调用sapi_moduleflush成员函数指针, 间接的调用apacheapi: ap_rflush刷新apache

mod_gzip과 같은 일부 Apache 모듈은 자체적으로 출력 캐싱을 수행하여 결과를 초래할 수 있습니다. 플러시() 함수에 의해 생성되어 브라우저에 즉시 전송되지 않습니다.

브라우저에서도 수신된 콘텐츠를 표시하기 전에 캐시합니다. 예를 들어, Netscape 브라우저는 개행 문자나 html 태그의 시작 부분을 받을 때까지 콘텐츠를 캐시하고 태그를 받을 때까지 전체 테이블을 표시하지 않습니다.

일부 버전의 Microsoft Internet Explorer는 256바이트를 수신한 후에만 페이지 표시를 시작하므로 이러한 브라우저가 페이지 콘텐츠를 표시할 수 있도록 일부 추가 공간을 보내야 합니다.

따라서 두 가지를 사용하는 올바른 순서는 먼저 ob_flush, 그 다음 플러시입니다.

물론 다른 sapi에서는 플러시를 호출할 수 없지만 코드의 이식성을 보장하기 위해 다음을 권장합니다. 함께 사용하세요.

이 기사는 https://blog.csdn.net/qq_28602957/article/details/66973431

추천:
PHP 비디오 튜토리얼

위 내용은 PHP에서 ob_flush와 플러시의 차이점 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제