מדריך דרופל – Caching

‏ • Internet Israel

דרופל היא מערכת יותר כבדה ממערכות אחרות המבוססות על PHP כגון וורדפרס וג'ומלה. כאשר אני אומר 'כבדה' אני מתכוון בעיקר למורכבות המערכת – הן מבחינת מסד נתונים (מספר הטבלאות של דרופל גדול בהרבה ממספר הטבלאות במערכות אחרות) והן מבחינת היכולת של המשתמש ליצור שאילתות מורכבות באמצעות views.

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

את הפתרונות המוצעים כאן כדאי ליישם רק בשלב שאחרי הפיתוח – לאחר שסיימתם להגדיר את סוגי התוכן, ה-views ואת העיצובים ואתם מעלים את האתר לשרת (ובאמצעות וובמטריקס מדובר בעצם בלחיצת כפתור) – אז כדאי להשתמש בפתרונות האלו.

על מנת להאיץ את פעילות האתר, אנו נכנס אל פאנל הניהול ונבחר בהגדרות:

פאנל הניהול

אחרי כן אנו נבחר בביצועים:

בחירה בביצועים

בפנינו יתגלה מסך מעניין שבו אנו יכולים לבצע אופטימזצית מהירות לאתר:

דף הביצועים

הדבר הראשון שכדאי לעשות הוא אגרגציה ודחיסה של קבצי JavaScript ו-CSS:

דחיסה ואגרגרציה של קבצים

אם נסמן את שתי תבות הסימון האלו ונלחץ על שמור תצורה, מערכת דרופל תיקח את כל קבצי ה-CSS וה-JavaScript השונים שיש במערכת ונמצאים שם בשל מודולים שונים, ערכות עיצוב המכילות מספר קבצי CSS וכו' ותדחוס אותן לקובץ CSS אחד מכווץ.

כך למשל, נראה חלק ה-head בדף הראשי לפני הכיווץ:

לפני דחיסה ואגרגציה

חלק ה-head לאחר הדחיסה:

אחרי דחיסה ואגרגציה

קבצי ה-CSS מסומנים בריבוע אדום – אפילו בלי להבין יותר מדי בקבצי CSS אפשר לראות שנעשתה כאן אגרגציה ודחיסה. בנוסף, קבצי ה-CSS מועברים עם הוראות לביצוע cache לדפדפן וכך ביקורים חוזרים באתר (וביקורים בדפים נוספים) יואצו אף יותר.

מצד שני, לאחר שאנו מפעילים את ה-cache של ה-CSS וה-JavaScript, כל שינוי שנעשה בקבצים האלו – בין אם מדובר בשינוי שעשינו בערכת העיצוב ובין אם מדובר בשינוי שעשינו במקום אחר לא יראה עד שננקה את ה-cache ידנית. ניקוי ה-cache נעשה בחלקו העליון של דף הביצועים:

ניקוי מטמונים

ניקוי כל המטמונים (המילה העברית ל-cache) מנקה מספר טבלאות במסד הנתונים וכן מבצעת אגרגציה ודחיסה מחודשת של קבצי ה-CSS וה-JavaScript ובכך יכניס את השינויים השונים שהכנסנו לקבצי ה-CSS וה-JavaScript.

 

בכלל – מומלץ לבצע ניקוי cache בכל פעם שאתם עושים משהו בדרופל ואתם לא מקבלים את התוצאה שאתם רוצים – בין אם מדובר בדף חדש בערכת עיצוב שהכנסתם ואתם לא רואים את העיצוב שלו ובין אם מדובר ב-view שלא עובד כמו שצריך.

דחיסה נוספת שניתן לעשות היא ביצוע cache לעמודים ולבלוקים. כאשר אנו עושים cache מסוים לדף, אנו בעצם מאחסנים אותו בזכרון המערכת ומונעים ביצוע של שאילתות SQL אל מסד הנתונים. היתרון הוא שנחסך זמן רב. החסרון הוא שאם מדובר בדף שהתוכן שלו משתנה באופן תדיר, יהיו משתמשים שלא יוכלו לראות את התוכן המעודכן. ברוב האתרים שהם לא בעלי תוכן המשתנה באופן תדיר שימוש ב-caching כזה לא יזיק כלל. הפעלת ה-caching היא פשוטה ונעשית באמצעות סימון תיבות הסימון ושמירה באמצעות לחיצה על שמירת תצורה.

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

קביעת זמן חיים מינימלי של מטמון

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

לאתרים רגילים שאינם מתעדכנים באופן תדיר – כמו אתרי מסחר ותדמית, קטלוגים, בלוגים קטנים ואתרי תוכן קטנים ניתן וכדאי לבצע caching.

תגיות: , , ,

רן בר-זיק

מתכנת PHP מנוסה ובעל ידע רב בפיתוח לאינטרנט על בסיס LAMP. מומחה במערכות דרופל, ג'ומלה ו-וורדפרס. שולט היטב בכל מה שקשור לפרונט אנד: JavaScript: jQuery ו-MooTools,ActionScript 2/3 וכמובן HTML 5 + CSS 3.אינטרנט ישראל: www.internet-israel.com

תגובות בפייסבוק