راهنمای توسعه دهنده ی وب - مبحث cache در مرورگر (پارت یکم)



مرور کلی (پارت اول)

کش کردن، ویژگی جالب و در عین حال پیچیده ی مرورگر هاست. در این مقاله ی چند قسمتی، به توضیح نحوه ی استفاده ی مرورگر ها از این قابلیت برای لود سریع صفحات، عوامل موثر بر مدت زمان این فرآیند و چگونگی bypass کردن آن در زمان های لازم، خواهیم پرداخت.

چرا مبحث کش از اهمیت بالایی برخوردار است؟

تمامی مرورگرها تلاش می کنند تا از فایل های استاتیک یک نسخه ی کپی به صورت لوکال داشته باشند تا از این طریق بتوانند سرعت لود صفحه را کاهش دهند و ترافیک شبکه را به حداقل برسانند.

کشینگ در مرورگر چگونه اتفاق می افتد؟

  • مورد 1: کاربر قبلا از سایت بازدید نکرده است.

در این حالت مرورگر هیچ فایل کش شده ای از سایت ندارد و همه ی فایل های مورد نیاز از طریق درخواست های http از سرور دریافت می شود.

تصویر زیر، نشان دهنده ی منابع دانلود شده در زمانی است که برای اولین بار صفحه اول ویکی پدیا را باز می کنیم. نوار وضعیت پایینی نشان می دهد که 256KB داده به مرورگر منتقل شده است.

  • مورد دوم: کاربر قبلا از سایت بازدید کرده است.

مرورگر فایل html را از سرور دریافت می کند اما برای فایل های استاتیک (مثل فایل های جاوا اسکریپت، استایل ها و تصاویر) از کش کمک می گیرد.

در تصویر زیر، پس از رفرش صفحه ی ویکی پدیا می توانید اختلاف داده ی منتقل شده و تاثیر کشینگ را مشاهده کنید.

دیتای منتقل شده تا 928 بایت کاهش پیدا کرد - این یعنی 0.3% دیتایی که در لود اولیه وجود داشت. ستون Size در تصویر، نشان می دهد که بیشتر موارد مورد نیاز از کش گرفته شده است.

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

در ادامه و در پارت دوم، در مورد چگونگی برخورد مرورگر با فایل هایی که می بایست کش شوند صحبت خواهیم کرد.

امیدوارم این مقاله نیازتان را برآورده باشد.