[[prevent-cache]]
=== مفهوم: حافظه موقت

[role="summary"]
مروری بر حافظه موقت و داده‌های سایت که می‌توانند در آن قرار گیرند.

(((Cache,overview)))
(((Page cache,overview)))
(((Module,Internal Page Cache)))
(((Module,Dynamic Page Cache)))
(((Internal Page Cache module,overview)))
(((Dynamic Page Cache module,overview)))

==== دانش پیشنیاز

<<understanding-drupal>>

==== حافظه موقت صفحه چیست؟

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

روش‌های مختلفی برای افزایش سرعت بارگیری صفحه وجود دارد، از جمله نصب نرم‌افزار در سرور. دروپال شامل افزونه‌های داخلی Page Cache و Dynamic Page Cache است که نیاز به نصب نرم‌افزار خارجی را برطرف می‌کند؛ آن‌ها از یک مکانیزم _حافظه موقت در پایگاه‌داده_ استفاده می‌کنند که می‌تواند به افزایش سرعت سایت شما کمک کند. شیوه‌ای که این افزونه‌ها کار می‌کنند به این صورت است که هنگام محاسبات صفحه، نتایج میانی درون یک مکان مشخص از پایگاه‌داده قرار می‌گیرند که به نام _cache_ شناخته می‌شود. سپس، دفعه بعد که این محاسبات مورد نیاز باشند دیگر نیازی نیست از ابتدا انجام گیرند بلکه نتایج آن از این مکان خوانده می‌شوند. به علاوه، زمانی که محتوا یا داده‌ای که روی محاسبات خاصی تاثیرگذار است، تغییر کند این حافظه پاک شده و از نو محاسبه می‌گردد تا در فراخوانی بعدی مورد استفاده قرار گیرد.

این افزونه‌های حافظه موقت معمولا به خوبی کار کرده و حداقل افزایش سرعت را برای اکثر سایت‌ها فراهم می‌کنند. با این حال، گاهی اوقات حافظه موقت صفحه ممکن است با مشکلاتی رو به رو شود:

* داده خراب در حافظه موقت منجر به خروجی اشتباه صفحه شود

* داده قدیمی در حافظه موقت به مدت طولانی نگهداری شود که این امر خروجی صفحه را بروزرسانی نمی‌کند

* حافظه موقت ناکافی منجر به کاهش سرعت بارگیری صفحات می‌شود

==== چه داده‌هایی در حافظه موقت قرار می‌گیرند؟

جدا از اینکه کدام یک از افزونه‌های ذکر شده در سایت شما نصب هستند، دروپال بسیاری محاسبات داخلی خود را درون حافظه موقت قرار می‌دهد. این داده‌ها عبارتند از:

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

* فایل‌های CSS و JavaScript به صورت دلخواه می‌توانند بهینه و فشرده‌سازی شوند (بر اساس تنظیمات سایت شما). در این صورت، فایل‌های فشرده شده در فایل سیستم قرار می‌گیرند که دیگر نیازی به بهینه‌سازی مجدد آن‌ها نباشد. اگر یک افزونه یا قالب را توسعه می‌دهید، به منظور شناخته شدن این فایل‌ها باید حافظه موقت مربوط به آن‌ها را غیرفعال یا پاکسازی کنید.

* سیستم برخی از توابع سطح-پایین PHP را مانند _hook implementations_ و _plugin classes_ از افزونه‌های نصب شده تشخیص داده و درون حافظه موقت قرار می‌دهد. اگر یک افزونه جدید را توسعه می‌دهید یا ویژگی جدیدی به افزونه موجود می‌افزایید، به منظور شناخته شدن این ویژگی‌ها باید حافظه موقت مربوط به آن‌ها را پاکسازی کنید.

==== موضوعات مرتبط

اگر مشکلی با سایت خود دارید، اولین کاری که می‌توانید انجام دهید پاکسازی حافظه موقت است. برای اطلاعات بیشتر <<prevent-cache-clear>> را مشاهده کنید.

==== منابع مطالعاتی

https://www.drupal.org/docs/7/managing-site-performance-and-scalability/caching-to-improve-performance/caching-overview[صفحه "استفاده از حافظه موقت به منظور بهبود عملکرد" در مستندات جامعه کاربری _Drupal.org_]

*مشارکت‌کنندگان*

نگارش توسط https://www.drupal.org/u/jhodgdon[Jennifer Hodgdon]

ترجمه توسط https://www.drupal.org/u/novid[Navid Emami]
