لود كردن سريع JavaScript

اين روزها استفاده از JavaScript براي داشتن وب سايت هاي RIA يك روش قابل قبول و هوشمندانه در دنياي development محسوب ميشه.اما استفده زياد از JavaScript باعث ميشه سرعت و كارايي وب سايت (لود شدن) بعلت حجم زياد كد هاي جاوااسكريپت پايين بياد.

هرچقدر سايت ما پويا و Ajax ي باشه به كدهاي جاوااسكريپ و CSS بيشتري نياز داره مخصوصا اگز شما از فريمورك خاصي استفاده كرده باشيد معنيش اسنه كه كاربر بايد ديتاي بيشتري دانلود كنه بطور سرانگشتي هر چند JavaScript فقط يه فايل تكسته یک فريمورك JavaScript نسبتا جمع و جور 100 كيلوبايت حجمشه!

در زير 3 روش رو براي كم كردن (minimize) كردن اين حجم معرفي ميكنيم

كوچك كردن (minify) جاوا اسكريپت

پاك كردن هر چيز غير ضروري در فايل جاوا اسكريپت بخصوص پاك كردن توضيحات (comments) و white space ها (تب , خط هاي خالي و SPACE) اينا چيزهاي هستن (مخصوصا كامنت ها ) براي دولوپر ضروررين ولي مرورگر كاربر هيچ نيازي به اونا نداره.براي پاك كردن ميتونيد بصورت دستي اين كار رو انجام بديد يا از JSMin يا YUI Compressor استفاده كنيد.

فشرده كردن (compress) جاوا اسكريپت

كد زير در فايل htaccess يا conf باعث ميشه وب سرور آپاچي كدهاي جاوا اسكريپت(هر فايلي با پسوند JS.) رو به صورت فشرده شده به مرورگر بفرسته

<IfModule mod_deflate.c>
<FilesMatch "\.js$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
كد بالا چك ميكنه اگه ماژول mod_deflate (ماژول قديمي mod_gzip رو هم ميتونيد استفاده كنيد ديدن سازگاري با مرورگر هاي ورژن هاي قديمي) فعال باشه هر فايلي با پسوند JS. رو يصورت فشرده به سمت مرورگر ميفرسته.
 
نكته :اگه وب سايت شما در پلن هاي مشترك (shared hosting plan) ميزباني ميشه ممكنه اين گزينه رو نداشته باشيد.

كش كردن (cache) جاوا اسكريپت
با روش مشابه در فايل htaccess يا conf ميتونيم كدهاي جاوا اسكريپت رو براي مرورگر ها كش كنيم با تنظيم كردن تاريخ انقضا (expiration date)
<FilesMatch "\.js$">
ExpiresActive On
ExpiresDefault "access plus 1 years"
</FilesMatch>
تنها نكته منفي اين روش اينه كه اگه شما هر تغييري در فايل جاوا اسكريپتون بديد براي اينكه اعمال بشه بايد نام فايل رو عوض كنيد (و همچنيا تمام ارجاع ها به اون فايل رو )

نظرات

  1. روش فشرده کردن با جاوا اسکریپت جالب بود تا به حال ندیده بودم.

    پاسخحذف
  2. نظر صحیح اینه:روش فشرده کردن با وب سرور جالب بود تا به حال ندیده بودم ;-)

    پاسخحذف
  3. دستت درد نکنه
    و یک نکته کمپرس کردن و یا پاک کردن اتوماتیک فضا های خالی و غیره د بعضی مواقع به کد آسیب می رسونه و کد اجرا نمیشه فکر کنم ماله عبارات با قاعده باشه

    پاسخحذف

ارسال یک نظر

پست‌های معروف از این وبلاگ

lnav ابزاری بسیار کاربردی برای پیمایش لاگ ها در لینوکس و البته مک

ساختن ایمیج های داکری به کمک BuildKit - بخش دوم

ساختن ایمیج های داکری به کمک BuildKit - بخش اول