<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mohammad Shahriari Fard</title>
        <link>https://virgool.io/feed/@unshields</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 13:20:01</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/26287/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Mohammad Shahriari Fard</title>
            <link>https://virgool.io/@unshields</link>
        </image>

                    <item>
                <title>چگونه از Fetch API استفاده کنیم؟</title>
                <link>https://virgool.io/@unshields/fetch-z8hsjntdza7o</link>
                <description> همونطور که اطلاع دارید API مخفف Application Programming Interface می باشد. مرورگرها  API های زیادی رو در اختیار کاربران قرار میدن و برنامه نویسان میتونن با استفاده از اونا کارهای مختلفی رو انجام بدهند. مثلا میتونیم از Full Screen API یا Web Audio API یا Battery API و ... به عنوان مثالهایی برای API نام ببریم. با استفاده از هر کدام از این API ها میتونین کار خاصی رو انجام بدین.مثلا با استفاده از Battery Status API میتونین وضعیت فعلی باتری سیستم خودتون رو بررسی کنید. با استفاده از Web Audio API میتونین صداهای مورد نظرتون رو مدیریت کرده و از اونا در سایتتون استفاده کنید.اخیرا یک مورد جدید بنام fetch API به مرورگرها اضافه شده که با استفاده از اون میتونین اطلاعات مربوط به یک آدرس رو دریافت کرده و در صفحه سایتتون نمایش بدین. همونطور که میدونین با استفاده از Ajax میتونیم اطلاعات مورد نظرمون رو بصورت ناهمزمان یا Asynchronous دریافت کرده و در جای مورد نظرمون قرار بدیم. برای اینکار از XMLHttpRequest استفاده میکنیم و با استفاده از متدهای اون به اطلاعات مورد نظرمون دسترسی پیدا میکنیم.ویژگی fetch API یک جایگزین مدرن و جدید برای XMLHttpRequest می باشد که کار کردن با Ajax رو خیلی راحتتر و شیرین تر از گذشته میکنه. شما با استفاده از window.fetch که در اکثر مرورگرها پشتیبانی می شود، میتونین درخواستتون رو فرستاده و اطلاعات مورد نظرتون رو بصورت ناهمزمان دریافت کنید.  میبینید که مرورگرهای IE از این ویژگی اصلا پشتیبانی نمیکنن. شما میتونین از یک Polyfill که توسط Github توسعه داده شده استفاده کنید و مرورگرهای قدیمی تر رو نیز تحت پوشش قرار بدین.  در ابتدا بررسی میکنیم که مرورگر فعلی از XMLHttpRequest پشتیبانی میکند یا خیر. اگر پشتیبانی بکنه یک نمونه جدید از اون میسازیم و در متغیر request ذخیره میکنیم. اگر مرورگر ما IE باشه و از این مورد پشتیبانی نکند، باید کارهای دیگه ای رو در try-catch انجام بدیم. در نهایت اگر مرورگر مورد نظر یکی از موارد بالا رو پشتیبانی بکنه، ما اون رو در متغیر request ذخیره سازی میکنیم. حالا میتونیم با استفاده از این متغیر به آدرسهای مورد نظرمون درخواست یا Request فرستاده و Response یا جواب سرور رو دریافت کنیم. با استفاده از آرگومان یا ورودی دوم متد open، آدرس url که درخواست باید به اون فرستاده بشه رو مشخص میکنیم. در نهایت با استفاده از آرگومان سوم میتونیم مشخص کنیم که این درخواست ناهمزمان باشه یا همزمان. مقدار این ویژگی دلخواه بصورت پیش فرض true می باشد و با اینکار درخواست مورد نظر Asynchronous می باشد و جلوی اجرا شدن کدهای دیگر رو نمیگیره و بصورت موازی و Parallel با کدهای دیگر اجرا شده و نتیجه بعد از مشخص شدن در اختیار ما قرار میگیره.</description>
                <category>Mohammad Shahriari Fard</category>
                <author>Mohammad Shahriari Fard</author>
                <pubDate>Sat, 05 Jan 2019 16:02:06 +0330</pubDate>
            </item>
                    <item>
                <title>بنچمارک فریم ورک های PHP</title>
                <link>https://virgool.io/@unshields/php-p1auauwgoghe</link>
                <description>سلامتا حالا درمورد بنچمارک و بازدهی فریم ورک های مطرح PHP تحقیق کردید؟اگر کردید که هیچی یه مرور بکنید اگرم نه که قراره خیلی خوش بگذره :)مرجع انتخابی سایت Medium هست که توسط آقای Will Bowman سال 2017 به اشتراک گذاشته شده.کانفیگ :  PHP 7.1.0, Apache 2.4.18 کیت : php_freamwork_benchmarkسرور :  Digital Ocean Ubuntu 16.04.1 x64 2gb / 2CPU dropletفریم ورک های مورد برسی 1-No framework (PHP Pure / Old School)2-Codeigniter 33-Lumen 5.34-Fuel 1.85-Symfony 3.06-Laravel 5.37-Zend 2.5خوب بریم سر اصل مطلب :Requests Per Secondتعداد درخواست بر ثانیه هرچه بیشتر بهترMemoryمصرف حافظه هرچه کمتر بهترExecution Timeمدت زمان اجرایی هرچه کمتر بهترIncluded Filesتعداد فایل های مشمول در حین اجرای پردازش هر چه کمتر بهترخوب بریم سراغ نتیجه گیری ;)از بین تست های انجام شده فریم ورک کد ایگنایتر 3 بیشترین RPS را  با کمترین مصرف حافظه فراهم کرد و فریم ورک زند کمترین RPS و فریم ورک لاراول بیشترین مصرف حافظه را فراهم کرد.طبق آمار رنک بندی فریم ورک ها در سال 2017 به شکل زیر بود : No framework: 7,094 requests per second, .34M memory.Codeigniter 3: 2,245 requests per second, .38M memory.Lumen 5.3: 1,543 requests per second, .63M memory.Fuel 1.8: 1,033 requests per second, .60M memory.Symfony 3.0: 551 requests per second, 1.52M memory.Laravel 5.3: 331 requests per second, 1.53M memoryZend 2.5: 291 requests per second, 1.34M memory.همچنین جالبه بدونین ورژن PHP تاثیر مستقیم تو RPS داره برای مثال اگر PHP Pure در PHP 5 تعداد RPS 5000 باید در ورژن PHP 7 این تعداد 7000 می شود!امیدوارم از این مطلب لذت برده باشید!</description>
                <category>Mohammad Shahriari Fard</category>
                <author>Mohammad Shahriari Fard</author>
                <pubDate>Tue, 01 Jan 2019 14:46:05 +0330</pubDate>
            </item>
            </channel>
</rss>