Search
Close this search box.

כל מה שצריך לדעת על קאש – זיכרון מטמון

והנה הגענו לדבר על הנושא החם של בניית אתרים. קאש.

קאש נקרא בעברית זיכרון מטמון. הכוונה לשמירת נתונים מסויימים בזיכרון כלשהו (תכף יגיע הפירוט…). המטרה של שמירת קאש היא כמובן שיפור מהירות טעינה של האתר.

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

אז נתחיל:

בואי נדבר שניה על איך עובד עמוד אינטרנט

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

השרת מקבל את הקריאה. מערכת וורדפרס נכנסת לפעולה. כעת רץ קוד PHP שמבצע חישובים כמו מה המזהה של העמוד (לפי הקישור), אילו רכיבים צריך להציג, וורדפרס קוראת לDB ומקבלת ממנו את כל הנתונים (תפריטים, טקסטים, ובמקרה של אלמנטור – גם את כל הHTML והעיצוב).

בסופו של תהליך – נוצר קוד HTML שחוזר לדפדפן. 

הרגע הזה בטעינת העמוד נקרא first byte. הזמן שלקח מרגע שהדפדפן שלח את הקריאה ועד שקיבל חזרה את הHTML  נקרא TTFB, או אם נפרק: Time To First Byte. 

אבל זה לא הכל. עכשיו יש לדפדפן רק את הHTML, שזה אומר – אילו פריטים יש בדף – תמונות, קישורים, רשימות, טקסטים וכו'. זה לא מעוצב וללא פונטים או סקריפטים. עכשיו מתחיל השלב השני – טעינת משאבים.

הדפדפן רץ על הHTML ובודק אילו משאבים הוא צריך. משאבים הכוונה לכל מה שהדפדפן צריך כדי להציג את העמוד בצורה תקינה:

  • קבצי CSS
  • קבצי JS
  • תמונות
  • פונטים
  • סרטונים

ועוד.

עבור כל משאב הדפדפן שוב הולך לשרת ומבקש את הקובץ, מקבל את הקובץ וטוען אותו לעמוד. מכאן אפשר להבין שככל שיש יותר משאבים – טעינת העמוד תהיה איטית יותר, אבל על זה בהמשך.

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

קאש בשרת – תוסף

כמו שנאמר למעלה, בכל פעם שדפדפן צריך כתובת מסויימת – הוא הולך לשרת והשרת מתחיל לעבוד קשה כדי לייצר קוד HTML. 

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

תוסף קאש עובד בצורה הבאה:

  • אסתר נכנסה לעמוד הבית. הדפדפן שלה שולח קריאה לשרת "תן לי בבקשה את עמוד הבית".
  • וורדפרס מתחיל לרוץ, קוד PHP, שליפות מהDB וכו', ומייצר את הHTML.
  • הHTML מוחזר לדפדפן של אסתר, ובמקביל נשמר עותק של הHTML המוכן על השרת. 
  • עוברות 5 דקות. 
  • ברכה נכנסת לעמוד הבית. הדפדפן שלה שולח לשרת קריאה "תן לי בבקשה את עמוד הבית".
  • וורדפרס הולך לתיקיה של הקאש ובודק האם קיימת גרסת HTML של הדף. כאשר הגרסה קיימת – הHTML המוכן יחזור לדפדפן של ברכה, בלי שהשרת יצטרך לעבוד קשה כדי לייצר אותו מחדש.

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

כמה החרגות

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

אפשר לעשות את זה בהגדרות של התוסף. עמודי עגלה/תשלום מוגדרים באופן אוטומטי כעמודים בלי קאש.

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

איך מתפעלים קאש בשרת?

קודם כל, כמובן, מתקינים תוסף ייעודי. התוספים המוכרים ביותר הם wp-rocket (תוסף בתשלום אבל מומלץ ביותר על ידי המומחים הגדולים בשיפור מהירות טעינה).

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

למי שרוצה תוסף חינמי מצוין – יש את wp total cache. אבל תרחמי על עצמך ותתקיני אותו רק אחרי שאת מסיימת את הבניה של האתר. הוא פשוט סיוט לפעמים עד שהוא מנקה קאשים 🙂 .

לתוספי קאש יש כמה הגדרות, קוראים להן בשם כזה או אחר בהתאם לתוסף שבו משתמשים:

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

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

משתמשים מחוברים

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

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

מה הלאה?

אני רואה שהפוסט יצא ארוך גם ככה, אז לפני שאני מתישה אותך לחלוטין – נעצור כאן 🙂

בפוסט הבא נדבר בעז"ה על קאש בדפדפן, נדבר על הגדרות נוספות של תוספי קאש שקשורים למשאבים (קבצי CSS וכדו', זוכרת?).