בשביל כבוד אני צריך לרפרש את הקאש

מה שיכול להאיץ דרמטית אתרים ואפליקציות מבוססות דרופל הוא יכולות הקאשינג הטובה של דרופל. אם נכנס ל-admin->performance נוכל לבצע דרגות שונות של קאשינג. מהקאשינג המאד מתבקש של צירוף כל ה-CSSים וה-JavaScript ועד caching של דפים ברמות שונות.
Caching on Drupal

מה ה-caching הזה עושה? בגדול – במקום להריץ שאילתות למסד הנתונים, ה-caching אוגר את תוצאות השאילתות ולא מריץ אותן בכל פעם, כך מתבצע חסכון גדול בזמן הריצה, כיוון שכל השאילתות לא צריכות לרוץ בזמן אמת.

הכל טוב ויפה אך יש מקרים שבהם אנו צריכים למנוע את הקאשינג. אם יש לנו בלוק או דף שחייב להתעדכן כל הזמן ברגע שנכנסים אליו. דוגמא חיה מהמציאות – היה לי דף באפליקצית דרופל שכל מה שהוא עשה הוא לקרוא נתונים ממסד הנתונים בזמן אמת ולייצר מהם קובץ JSON. מסד הנתונים התעדכן אחת ל-5 שניות לערך ולפיכך הקריאה היתה חייבת להיות בזמן אמת ללא קאשינג. דוגמאות נוספות לא חסרות.

אז נכון, אני יכול להפוך את כל האתר לאתר נטול קאשינג, אבל לפעמים אנחנו לא רוצים לעשות את זה. לא חראם לוותר על כל יתרונות הקאשינג בגלל בלוק או עמוד סורר? הפתרון הנכון הוא לבטל את הקאשינג עבור עמוד או עבור בלוק מסוים – ואת זה ניתן לעשות בקלות גם בדרופל 6 וגם בדרופל 7:

נקיון ה-cache ב-hook_menu (דרופל 6/7)

אם אתם יוצרים את הדף שלכם באמצעות hook_menu, ניתן להשתמש בפונקצית menu_cache_clear שמקבלת כפרמטר את שם ה-menu.


menu_cache_clear($menu_name = 'navigation')

מניעת caching של דף שלם באמצעות משתנה גלובלי (דרופל 6/7)

ישנו משתנה גלובלי שקובע אם לבצע קאשינג או לא, שימו אותו היכן שאתם יוצרים את הדף שלכם באופן הבא:


$GLOBALS['conf']['cache'] = FALSE;


ניתן לשים אותו ב-hook_nodeapi או ב-hook_view.

מניעת caching של בלוק (דרופל 6/7)

מניעת קאשינג של בלוק פשוטה מאד, בדומה למניעת קאשינג של דף עם משתנה גלובלי, אפשר למנוע קאשינג של בלוק עם


define('BLOCK_NO_CACHE', -1)

ואת ההגדרה הזו שמים היכן שהבלוק נוצר – בדרך כלל במודול שלכם.

ולמי שלא הבין מהיכן הכותרת, שימו לב לקליפ הבא:

ועכשיו כולם לשיר ביחד – בשביל כבוד אני צריך לרפרש את הקאש!

(כל הזכויות על החוכמה הזו שמורות לשלומי צדוק).

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. 🙂

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (אין הצבעות)


אל תשארו מאחור! יש עוד מה ללמוד!