🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی
بافر کردن خروجی و کش کردن در سمت سرور
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۰۶ خرداد ۱۴۰۰

سلام

 

وقتی خروجی رو بافر می‌کنیم به جای اینکه خروجی به صورت تکه تکه به مرورگر ارسال بشه اول تو بافر ذخیره میشه و بعد یکجا ارسال میشه 

 

 سوالم اینه که خود این بافر کردن باعث کاهش سرعت لود سایت نمیشه؟ بلاخره اگه یک خروجی بزرگ رو به صورت تکه تکه ارسال کنیم سریع‌تر منتقل میشه تا بخواهیم اون خروجی بزرگ رو به صورت یکجا ارسال کنیم

سلام.

بافر کردن اطلاعات برای کنترل خروجی استفاده میشه. برای مثال شما میخواهید قبل ازینکه هدرهایی مانند سشن و کوکی و ... به مرورگر کاربر ارسال نشده، هیچ دیتای Html ای فرستاده نشود.

یا اینکه در الگویی مانند MVC خروجی را در بافر نگه دارید تا در View مورد نظر اونرو flush کنید.

وقتی کاربردو مزایای Output Buffering رو متوجه بشیم، میتونیم در جای مناسب ازین قابلیت استفاده کنیم.

البته اگر کدها ساختار مناسبی داشته باشن، در برخی جاها که هدرها ست میشوند هم نیازی به استفاده از بافرخروجی نیست.

همچنین میتونین از PHP.ini مقدار ذخیره سازیشو تفییر بدید.

در کل حجم زیادی در بافر ذخیره نمیشه که در بهینه سازی و سرعت لود، تاثیر چشمگیری داشته باشه. حتی اگر حجم دیتا بیشتر از بافر باشد بازهم تکه تکه ارسال میشه(بافر سرریز شده). همچنین ارسال یکجای دیتا میتونه باعث افزایش لود صفحه باشه.

شما میتونید در یک مثال عملی از توابع microtime استفاده کنید و با بافر و بدون بافرو تست کنید و ببینید چند میکروثانیه اختلاف دارند.

محسن موحد ۰۶ خرداد ۱۴۰۰، ۱۳:۴۰