PDA

View Full Version : سوال در مورد کد flush the buffer



javadth
جمعه 01 فروردین 1393, 10:05 صبح
سلام یک زمانی میگفتن که کد زیر باعث افزایش سرعت لود سایت میشه
سوالم اینجاست که چطوری اینکارو میکنه ؟
ایا واقعا باعث افزایش سرعت سایت میشه ؟
توی همه نسخه های php کار میکنه ؟



</head>
<?php
// flush the buffer
flush();
?>
<body>

MMSHFE
جمعه 01 فروردین 1393, 10:26 صبح
خیر باعث افزایش سرعت سایت نمیشه بلکه باعث میشه تا جایی که این دستور رو صدا زدین، برای مرورگر کلاینت ارسال بشه و بعد بقیه کد پردازش بشه و البته از اونجا که بخشهای قبلی منتظر نمیشن تا کل فایل پردازش بشه و بعد، اطلاعات برای کلاینت ارسال بشه، بنظر میرسه سایت سریعتر بارگذاری میشه (فرضاً توی Firefox آیکن کنار سایت در سربرگ مرورگر سریعتر سبز میشه) ولی بهرحال محتوای صفحه برای اینکه کامل دست کلاینت برسه، باید بطور کامل پردازش بشه. بطور کلی ربطی به سرعت نداره.

eshpilen
جمعه 01 فروردین 1393, 12:22 عصر
البته اگر میخواید از فلاش شدن خروجی مطمئن بشید باید قبل از دستور flush از دستور ob_flush هم استفاده کنید به این شکل:

@ ob_flush();
flush بافر خروجی آپاچی رو فلاش میکنه، و ob_flush بافر خروجی خود PHP رو.
ضمنا نکتهء دیگر اینکه مرورگرها معمولا دیتای دریافت شده تا به یک حجم خاصی نرسیده نمایش نمیدن؛ بنابراین اگر به دلیلی این براتون مهمه و میخواید یک خروجی کمی رو همون اول فورا نمایش بده، باید قبلش یکسری دیتای اضافی به مرورگر ارسال کنید (مثلا 1024 کاراکتر فضای خالی - میزان این دیتای لازم از مرورگر به مرورگر تفاوت میکنه؛ بنابراین باید عملا تست کنید).