وقتی کاربران وارد سایت شما میشوند، حافظه پنهان مرورگر (Browser caching) آنها، فایلهای صفحه وب را ذخیره کرده و در دفعات بعدی که وارد سایت می شوند نیازی به بارگیری دوباره فایل ها ندارند و این موجب بالا رفتن سرعت لود پیج یا صفحه میشود.
منظور از Leverage browser caching این است که افرادی که سایت را برنامهنویسی میکنند، در کدنویسیها به مرورگرهای کاربران فرمان دهند که چطور با منابع سایت شما رفتار کنند و چه بخشهایی را ذخیره نمایند تا در موارد بعدی سرعت لود پیج بیشتر باشد.
حافظه پنهان مرورگر (Browser caching) چست؟
هر بار که مرورگر صفحه وب را بارگیری میکند، باید تمام فایلهای وب را دانلود نماید تا صفحه بهدرستی نمایش داده شود. این فایلها شامل تمامHTML ، CSS، JavaScript و تصاویر است.
برخی از صفحات ممکن است فقط از چند فایل تشکیل شده و سایز آن ها حداکثر چند کیلوبایت باشد. با این حال برای دیگر صفحات ممکن است فایلهای زیادی وجود داشته باشد و حجم این فایلها میتوانند به چندین مگابایت برسند. برای مثال Twitter.com بیشتر از 3 مگابایت است.
در اینجا دو مشکل وجود دارد:
- بارگیری این فایلهای پرحجم، خیلی طول میکشد و اگر سرعت اینترنت شما کم باشد، این زمان طولانی میتواند شما را خیلی خسته کند.
- هر فایل، یک درخواست جداگانه به سرور میدهد. هرچه تعداد این درخواست ها بیشتر باشد، سرورها مجبورند کار بیشتری انجام دهند و این موجب کاهش سرعت پیج یا صفحه وبسایت میشود.
حافظه پنهان مرورگر میتواند با ذخیره برخی از این فایلها در مرورگر کاربر، به سرعت لود شدن پیج کمک کند. در اولین بازدید کاربران از سایت شما، بارگیری به همان زمان اصلی طول میکشد، اما وقتی آن کاربر دوباره وبسایت شما را بازدید کند، صفحه را رفرش کند یا حتی به صفحه دیگری از سایت شما منتقل شود، آنها از قبل، تعدادی از فایلهای مورد نیاز برای بارگیری صفحه را در اختیار دارند و نیازی به دانلود دوباره آن نخواهند داشت.
این بدان معنا است که میزان اطلاعاتی که مرورگر کاربر باید بارگیری کند، از دفعات قبل کمتر است و درخواستهای کمتری به سرور شما ارسال میشود؛ در نتیجه زمان بارگیری صفحه برای شما نسبت به قبل کاهش مییابد.
حافظه پنهان مرورگر (Browser caching) چگونه کار میکند؟
حافظه پنهان مرورگر با علامتگذاری صفحات خاص یا قسمتهایی از صفحات و بهروز کردن صفحات در فواصل مختلف، کار میکند. به عنوان مثال، لوگوی وبسایت شما روز به روز تغییر نخواهد کرد؛ با ذخیره تصویر این آرم یا لوگو، میتوانیم به مرورگر کاربر بگوییم که فقط هفتهای یک بار این تصویر را بارگیری کند. در این صورت هر بازدیدی که کاربر طی این یک هفته انجام دهد، نیازی به بارگیری دوباره تصویر لوگو ندارد.
وقتی سرور وب به مرورگر میگوید که این فایلها را ذخیره کرده و برای بار دوم آنها را دانلود نکند، باعث میشود که در وقت کاربران و همچنین پهنای باند سرور شما صرفهجویی شود.
چرا حافظه پنهان مرورگر مهم است؟
دلیل اصلی مهم بودن حافظه پنهان مرورگر این است که می تواند باعث کاهش بار روی سرور وب شما شود و درنهایت زمان بارگیری صفحات پیج، برای کاربران وبسایت شما کاهش خواهد یافت.
نحوه استفاده از حافظه پنهان مرورگر (leverage browser caching)
برای فعال کردن حافظه پنهان مرورگر، باید سربرگ (header) های HTTP خود را ویرایش کنید تا زمان انقضاء برای بعضی از فایلهای خاص تعیین شود.
پیکربندی Apache برای ارائه کردن سربرگهای مناسب
فایل htaccess خود را در ریشه (root) دامنه (domain) خود پیدا کنید. این فایل به صورت پنهان است، اما باید برای کاربرهای FTP مانند FileZilla یا CORE نمایش داده شوند. میتوانید پرونده htaccess را با نوتپد (notepad) یا هر نوع ویرایشگر متن اصلی ویرایش کنید.
در این فایل پارامترهای حافظه پنهان را تنظیم خواهیم کرد تا به مرورگر بگوییم که چه نوع فایلهایی را در حافظه نهان ذخیره کند.
<IfModule mod_expires.c> ExpiresActive On # Images ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/webp "access plus 1 year" ExpiresByType image/svg+xml "access plus 1 year" ExpiresByType image/x-icon "access plus 1 year" # Video ExpiresByType video/mp4 "access plus 1 year" ExpiresByType video/mpeg "access plus 1 year" # CSS, JavaScript ExpiresByType text/css "access plus 1 month" ExpiresByType text/javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" # Others ExpiresByType application/pdf "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" </IfModule>
باتوجه به فایلهای وبسایت خود، میتوانید زمانهای انقضاء مختلف را برای آنها تعیین کنید. اگر فایلهای خاصی وجود دارند که بیشتر از بقیه بهروزرسانی میشوند؛ شما باید زمان انقضاء زودتری روی آنها تعیین نمایید (به عنوان مثال پروندههای CSS).
پس از اتمام کار، فایل را همانطور که وجود دارد، ذخیره کنید و نه به عنوان یک فایل .txt
اگر از هر نوع فرمی از CMS استفاده میکنید، افزونههای حافظه پنهان یا دیگر افزونهها برای شما در دسترس می باشند.
توصیهها
- سعی کنید تمامی منابع استاتیک را در حافظه پنهان خود ذخیره نمایید.
- تاریخ انقضاء را حداقل روی یک ماه قرار دهید.
- میزان ذخیره حافظه پنهان خود را بیش از یک سال تنظیم نکنید.
احتیاط کنید
شما باید در فعال کردن حافظه پنهان مرورگر احتیاط کنید؛ اگر پارامترها بیش از حد روی برخی از فایلها تنظیم شوند، ممکن است بعد از این که سایت را بهروزرسانی کردید، کاربران نسخه بهروز شده وبسایت شما را دریافت نکنند.
رعایت این نکته، بیشتر وقتی مهم است که با یک طراح برای ایجاد تغییر و بهروزرسانی در وبسایت خود کار میکنید، ممکن است شما این تغییرات را در وبسایت ایجاد کرده باشید، اما هنوز کاربران نتوانند آنها را ببینند؛ زیرا عناصری که تغییر کردهاند، قبلاً در حافظه پنهان مرورگر آنها ذخیره نشدهاند.