07-21-2011، 10:52 AM
Output Buffering در php به صورت عادی فعال است . یک رشته که قرار است در یک browser نمایش داده شود در هر لحظه توسط echo ترجمه می شد.در اینجا اهمیت output buffering را می تواننید درک می کنید چون می تواند پردازش را سریع تر یا
موثر تر کند بافر اساسا یک حافظه بزرگ ماندگار برای رشته ها است. وقتی یک رشته به خروجی منتقل می شود اول به بافر منتقل می شود به جای اینکه به خروجی browser برود.بعد از آن بافر به صورت " flushed" است. که محتوی رشته ها است.
Flushing زمانی رخ می رهد که :
1- مفسر php به انتهای صفحه برسد.
2- بافر بیش از اندازه پر از محتوا به ویژه زمانی که تنظیمات output buffering پیکربندی شود. یا
3- توابع flush() یا ob_flush() فراخوانی شوند.
چند نکته وجود دارد : با فرض اینکه شما از این مورد استفاده می کنید شما باید از flushing buffer بلافاصله بعد از تگ </head> استفاده کنید.
کد:
<!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 the buffer
flush();
?>
<body>
(اگر شما از wordpress استفاده می کنید می توانید این کد را در header.php در template خود استفاده کنید)
اول از همه browser ،head کد html را دریافت می کند و کل فایل های css را با استفاده از لینک ها دانلود می کند یا faveicone یا منابع دیگر را. عمل دانلود می تواند زمانی که browser بی کار است یا برای محتوای body منتظر است اتفاق افتد.سرعت می تواند
افزایش یابد البته به پردازش تحت سرور شما یا به حجم صفحه ، کیفیت سایز فایل css ، و هر چیزی که browser آنها را کش می کند بستگی داردهر چند که این یک بهینه سازی ساده است .
موارد زیادی برای بهینه سازی سرعت وب سایت دارند که می توانند جالب و موثر باشد