كاربر فعال


    كاربر مهمان


درباره وب سايت


با سلام .
افشین رشیدی هستم دانشجوی کارشناسی ناپیوسته مهندسی نرم افزار کامپیوتر مجتمع آموزش عالی ( دانشکده فنی و مهندسی ) بناب از شهرستان مهاباد . هدف از ایجاد این وب سایت کمک به علاقه مندان رشته کامپیوتر از جمله برنامه نویسی است . امیدوارم مقبول بازدیدکنندگان محترم واقع شود .


برای عضویت در وب سایت روی لینک زیر کلیک کنید :

عضویت در وب سایت

برای طرح سوالات و پیشنهادات خود می توانید نظر خود را از طریق فرم پایین صفحات ارسال کنید و یا از طریق ایمیل با ما در میان بگذارید .همچنين مي توانيد به تالار گفتمان به آدرس زير مراجعه كنيد :

تالار گفتمان


لينك به ما


برای قرار دادن لینک سایت آموزش برنامه نویسی در وب سایت یا وبلاگ خود کد زیر را با کلیک بر روی دکمه " کپی کد " کپی کرده و در محل مورد نظر خود قرار دهید .







پيوندها


>>>اف سي پرسپوليس
>>>كسب درآمد اينترنتي ( درآمدزايي آسان و واقعي از طريق اينترنت )
>>>تالار گفتمان
>>>وب سایت افشین رشیدی
>>>وبلاگ بزرگ منچستر
>>>پول * پول * پول
>>>Astronomy
>>>شعرای یمانی
>>>اخبار سپاهان
>>>خريد و فروش اينترنتي (كمترين قيمتها )
>>>امیرحسین
>>>برنامه نویسی
>>>بهترین آهنگ های روز
>>>دريافت پول به ازاي هر كليك
>>>پایگاه آموزش
>>>جديدترين كليپ هاي موبايل
>>>دانلود ، سرگرمی ، مطالب جالب و خواندنی
>>>ارزان سراي اينترنتي
>>>Abtarang
>>>سرمست ترین
>>>سینما و رپ ایرانی
>>>!:: دنیـای عـکس و مـوزیک ::!
>>>عشق ، احساس ، زندگی
>>>فقط چند دقیقه
>>>Iranian-IT
>>>مهندسان برق
>>>مروارید درون
>>>آموزشکده کامپیوتر
>>>جونه من 18- نیان تو
>>>سلول زنده
>>>گيتار
>>>best download
>>>جک و SMS
>>>کلیپ ( جدید - 2008 ) و عکس و رینگتون و اس ام اس
>>>ورود ممنوع
>>>وبلاگ تخصصی کامپیوتر
>>>گروه شبکه پرشین بلاگ - پویا کوشنده
>>>خبرهای روز IT
>>>قفل سکوت
>>>دنیای کامپیوتر
>>>بیا تو مجانی اطلاعات بگیر
>>>برترین اخبار و مقالات رایانه
>>>فدا خانوم رو ببین چه کرده
>>>دابل-کلیک، مرکز آموزش کامپیوتر و اینترنت ایرانیان
>>>قاسم پرسپولیسی
>>>يه سايت توپ براي همه ي سليقه ها
>>>عکس داغ
>>>تجارت الكترونيك
>>>hossein
>>>تفریح>جک>ترفند>مطالب عاشقانه>هرچیکه بخوای
>>>وب سایت تفریحی طوطیا
>>>کرمانشاه نیوز
>>>computer-world20
>>>هنر رزمي فونگ پاي چي وو كونگ فو
>>>AIOS - All In One Site
>>>ROYAYE KHIS
>>>بانک مقالات فارسی
>>>قاسم روني
>>>طراحی وب سایت
>>>عکسهای جدید ایرانی



               WWW.BARNAMENEVISI.SOMEE.COM


يا بافر کردن خروجی

يا بافر کردن خروجی

 

 

Buffering يا بافر کردن خروجی، امکان پیشرفته ای است که از نسخه چهار PHP افزوده شده است. با فعالسازی OB، دیگر خروجی حاصل از اجرای اسکریپت شما، مستقیما به سمت کلاینت ارسال نمی شود و در عوض، این خروجی در حافظه موقتی سرویس دهنده که اصطلاحا بافر نامیده می شود، ذخیره می شود.


خوب؛ با قرار گرفتن خروجی در بافر، می توان قبل از ارسال محتویات به مرورگر، یک سری عملیات خاص روی خروجی انجام داد. برای مثال در این مطلب به کاربرد بسیار سودمند آن یعنی «فشرده سازی محتوا » اشاره کردم. از دیگر عملیاتی که می توان نام برد، تبدیل اسناد
XML به HTML (مثلا اطلاعات را از سند XML بخوانیم و بوسیله تگهای HTML نمایش دهیم) یا مثلا به کمک عبارات باقاعده (regex)، تمام لینکها یا اصطلاحا URLهای گنجانده شده در خروجی را تغییر داد. یا هر عملیاتی که برای دستکاری رشته کاراکتر می تونید فکرشو بکنید.


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


شاید پیش خودتون فکر کنید، اگه من نخوام عملیاتی روی خروجی اپلیکیشن ام انجام بدم چی؟


حتی اگه شما نخواهید، پردازش خاصی روی خروجی اپلیکیشن اتون انجام بدید، بافر کردن خروجی، پرفورمنس و بازدهی سایتهای وب مبتنی بر
PHP را بهبود می بخشد، زیرا تعداد عملیات های ورودی/خروجی(I/O) روی سرویس دهنده را کاهش می دهد. فراخوانی لایه I/O سرویس دهنده وب، معمولا عملیات پرخرجی است. گردآوری خروجی در یک بلاک بزرگ و انجام تنها یک عملیات I/O روی آن به مراتب سریعتر از زمانی است که برای هر تکه خروجی منتشر شده توسط PHP، یک عملیات I/O صورت پذیرد. منظورم زمانی است که دستورات echo و print را صدا می زنید.


حالا اگر اسکریپتهای
PHP شما، صفحات HTMLای با حجم بیش از 10K را بعنوان خروجی تولید می کنند، تخصیص و آزادسازی بافر، ممکن است زمان بیشتری را در مقایسه با کاهش دفعات عملیات های I/O مصرف کند. بنابراین مطابق سایر مواردی که در علوم کامپیوتر وجود دارد، راه حل، یافتن تعادل مناسبی بین پرهیز از بافرینگ و استفاده تمام و کمال از بافرینگ است. خوشبختانه، بافرکردن خروجی PHP به کاربران امکان رسیدن به این تعادل را می دهد. به جای اینکه تمام خروجی بافر شود، ما می توانیم به PHP بگیم که خروجی را بصورت Chunked(قطعه ای) بافر کند. با بافر کردن خروجی به صورت قطعه ای، ما می توانیم مقدار داده های بافر شده را تا مقدار معینی محدود کنیم و هر موقع که به این مقدار رسیدیم و اصطلاحا بافر پر شد، بافر را خالی کنیم. مقدار متعادلی که برای بافر کردن خروجی قطعه ای پیشنهاد می شود، 4K است.این مقدار به طرز قابل توجهی، دفعات عملیات I/O را کاهش می دهد، بدون اینکه مقدار زیادی از حافظه اشغال شود یا overhead تخصیص دهی حافظه قابل ملاحظه ای را تحمیل کند.


برای نمونه، اگر اندازه متوسط یک صفحه
HTML تولید شده توسط PHP برابر با 50K باشد، PHP معمولا بین ۵۰۰ تا ۱۰هزار عملیات I/O انجام میدهد. اما با یک بافر ۴ کیلوبایتی، این تعداد به ۱۲ تا ۱۳ عملیات کاهش می یابد که بسیار قابل توجه است.


اگر می خواهید این بافر
۴ کیلوبایتی را برای تمام سایت خود فعال کنید، دستورالعمل output_buffering واقع در فایل پیکربندی php.ini را به مقدار ۴۰۹۶ ست کنید. اگه هم می خواهید برای اسکریپتهای خاصی از OB استفاده کنید، از تابع ob_start استفاده کنید. برای مثال با نوشتن:

<?php
ob_start
(null, 4096);
// rest of script
?>


آماده استفاده از این بافر
۴ کیلوبایتی خواهید بود.



*)
Buffer مکانی در حافظه کامپيوتر است که می توان اطلاعاتی را به مدت کوتاهی در آن ذخیره کرد.(حافظه موقتی)



توضیح تکمیلی:


برمی گردیم به اون زمانی که
OB نبود! برای ضبط خروجی یک اسکریپت، باید اون رو در یک رشته کاراکتر می ریختیم و وقتی کارمون تمام شد، اون رو اکو می کردیم.

<?php
$output
= "<html><body>";
$output .= "Today is ".strftime("%A, %B %e %Y");
$output .= "</body></html>";

echo
$output;
cache($output);


اگه از اون دسته از برنامه نويسان وبی هستيد که اين رشته خطير! رو با اسکريپتهای
CGI مبتنی بر Perl ياد گرفتيد، اسکريپت بالا يادآور خاطرات دردناکی است که باهاش مواجه هستید. اگه هم تجربه اين جور اسکريپتها را نداريد، تنها می تونيد دورانی رو تصور کنيد که اسکريپتهای وب اين شکلی بودند!


با استفاده از
OB، اسکريپت به حال عادی برگشت. تنها کاری که بايد انجام بديد، اينه که قبل از توليد خروجی بنويسيد:

<?php ob_start(); ?>


با اين کار،
OB رو فعال می کنيد و از این به بعد، تمام خروجی ها، در بافر داخلی ذخيره می شود. حالا می تونيد کد صفحه را مثل يه اسکريپت معمولی، اضافه کنيد.

 

<html>
<body>
Today is
<?= strftime("%A,  %B %e %Y") ?>
</body>
</html>


خوب به جايی رسيديم که محتويات صفحه توليد شده؛ چه می کنيم؟! اول، محتويات بافر رو می گيريم و بعد هم اون رو خالی می کنيم.

 

<?php
$output
= ob_get_contents();
ob_end_flush();
?>


()
ob_get_contents، محتويات فعلی بافر را به صورت رشته کاراکتر بر می گردونه که می تونيد هر بلايی سرش در بياريد. ()ob_end_flush هم بافرينگ رو متوقف می کنه و محتويات فعلی بافر رو به سمت کلاينت روانه می کنه. اگه بخواهيد، محتويات رو در يک متغير بصورت رشته کاراکتری ذخيره کنيد و ديگه اون رو سمت مرورگر نفرستيد، می تونيد ()ob_end_clean را صدا کنيد تا بافرينگ رو متوقف کنه و کل محتويات بافر رو هم منهدم کنه! نکته قابل توجه اين هست که هر دوی اين توابع، بعد از اتمام کارشون، بافر رو از بين می برند. بنابراين برای گرفتن محتويات بافر، تابع ()ob_get_contents رو بايد قبل از خاتمه بافرينگ فراخوانی کنيد.

 

 

 

 

بازگشت به فهرست

بازگشت به صفحه نخست


                آخرین مطالب وب سایت


راهنمای استفاده و آموزش MATLAB

الگوریتم محاسبه کوتاهترین مسیر بین تمام رئوس ( Floyd ) به زبان C

آموزش گام به گام پاسكال

برنامه نویسی با زبان اسمبلی

توابع و قطعه كدهاي مفيد برنامه نويسي

برنامه ماشين حساب مهندسي با زبان دلفي 7

همه چيز در مورد اينترنت

منابع ، سرفصلها و اطلاعات كنكور كارداني به كارشناسي دولتي 1388 نرم افزار كامپيوتر

برنامه بازي مارپله با زبان ويژوال بيسيك

برنامه استك چند گانه با استفاده از آرايه به زبان C

برنامه مساله پر پيچ و خم Mazing به زبان C


               ارسال سوالات ، نظرات و پيشنهادات


نام :
ایمیل :
وب سایت :
موضوع :
متن پیام :
كد امنيتي :

                                     مشاهده سایر پیامها



* براي مشاهده ساير نظرات و ديدن پاسخ سوالات روي " مشاهده ساير پيامها " كليك كنيد
* در صورتی که از پاسخ سوالات مطرح شده سایر بازدیدکنندگان مطلع هستید لطفا از طریق همین فرم پاسخ دهید
* چنانکه نظر شما خصوصی می باشد به ایمیل afshinrashidi@yahoo.com ارسال فرمائید .

منوي اصلي

= صفحه اصلی
= تالار گفتمان
= عضویت در وب سایت
= ورود به حساب شخصی
= آپلود عکس در وب سایت
= چت
= Visual Basic
= VB.NET
= C ++ / VC++ / C
= C #
= Pascal
= Delphi 7
= JAVA
= ASP
= ASP.NET
= PHP
= Gold Fusion
= XML
= HTML
= CSS
= Java Script
= Action Script
= SQL Server
= ADO / ADO.NET
= Security
= Registery
= UML
= Internet
= Windows XP Install
= Access
= Photoshop CS
= Flash
= Microsoft Power Point
= Microsoft Excel
= MATLAB
= ذخیره و بازیابی اطلاعات
= سیستم عامل
= ساختمان داده ها
= مهندسی نرم افزار
= معماری کامپیوتر
= هوش مصنوعی
= شیوه ارائه مطالب
= کتاب آموزش MATLAB
= الگوریتم Floyd
= آموزش گام به گام پاسكال
= برنامه نویسی اسمبلی
= توابع مفيد برنامه نويسي
= برنامه ماشين حساب دلفي
= همه چيز در مورد اينترنت
= كنكور كارداني به كارشناسي 88
= بازي مارپله با ويژوال بيسيك
= استكهاي چندگانه با زبان C
= مساله پر پيچ و خم Mazing
= تبديل Infix به Postfix
= شکستن پسورد administrator
= اجراي فايل صوتي در ويژوال بيسيك
= پارتيشن بندي FDisk
= اسمبل كردن كامپيوتر
= ارسال ايميل به ما


ورود به سيستم


 نام کاربری :
 رمز عبور :


عضویت در وب سایت


نظرسنجي

عالی
خوب
متوسط
ضعیف
بسیار ضعیف

نتايج نظرسنجي

عالی : 73 رای - 68 درصد

خوب : 14 رای - 13 درصد

متوسط : 5 رای - 5 درصد

ضعیف : 2 رای - 2 درصد

خیلی ضعیف : 14 رای - 13 درصد

مجموع آرا : 108 رای


نويسنده


نام : افشین
نام خانوادگی : رشیدی
شهرستان : مهاباد
تاریخ تاسیس : 05/05/1387
ایمیل : afshinrashidi@yahoo.com




آمار وب سايت


[11/22/2009]
بازديدهاي شما :
IP شما : 38.107.191.101
ساعت ورود : 3:13:53 PM
تعداد کل بازدیدها : 86542 بار
تعداد اعضا : 866 نفر
آمار وبگذر :

وضوح تصوير :


افشين رشيدي
Copyright © 2006 Afshin Rashidi - MAHABAD,IRAN , All rights reserved.
E~mail : afshinrashidi@yahoo.com