פרק 3: שמירת מצבשמירת מצביםלפני שנצלול מחדש לביצה של Perl הבא נתייחס לרגע לתכלית של "מצב", ולסיבה שאנו רוצים לשמר אותו? הדוגמה של הסימנייה (bookmark) מדגימה את הצורה הפשוטה ביותר של שמירת מצב – שהיא לעקוב אחרי, או "לזכור", משתנה יחיד. במקרה זה, המשתנה הזה הוא מספר העמוד. שימו לב, בכל זאת, שתוך כדי קריאה אין צורך לזכור את מספר העמוד, שהרי אנו קוראים את הספר ברציפות. מספר העמוד האחרון שנקרא חשוב רק כאשר אתה רוצה להתחיל לקרוא מחדש. הסימנייה, לכן, מדגימה שמירת מצב בין זמני קריאה שונים אבל לא בתוך אותה קריאה. בקרוב נוכל לראות מדוע "עוגיות" (”cookies”) הם טכניקת רשת נפוצה למטרה זו. תוך כדי גלישה ברשת, המשתמש עשוי לבקר בתוך זמן קצר במספר דפים בתוך אותו אתר. לחילופין, משתמש עשוי לבקר במספר דפים הנמצאים באתרים שונים שאינם קשורים זה לזה, או לבקר בשני דפים הנמצאים באתר אחד, דף שלישי באתר אחר, ודף רביעי שוב באתר הראשון. כתוצאה מכך, קשה מאוד להבין את התנהגות הגלישה במהלך גלישה בודדת (session) ברשת. בדרך-כלל, כאשר אנו מתייחסים למהלך של גלישה ברשת, הכוונה היא שהמשתמש נכנס לכמה דפים בתוך האתר שלכם תוך זמן מוגדר, ושהמשתמש עשה זאת מתוך כוונה מסוימת – לדוגמא, קניה או מילוי טפסים. לעומת זאת, נוכל להגיד שביקור באחד או יותר דפים באתר שלך, ולאחר מכן ביקור חוזר זמן מה לאחר מכן – כאשר זמן מה יכול לנוע בין חצי שעה לבין 6 חודשים או יותר – יצור מבנה אחר לגלישה. אבל כפי שאתם יכולים להבחין, הקו המפריד בין גלישה בודדת לבין מספר גלישות דק ביותר, לעיתים ישנה אפשרות להגדיר פרק זמן של גלישה בודדת בשרתים מיוחדים, או בתוך סקריפטי CGI. אולם אנו מתרכזים במושג הגלישה במישור הרעיוני בלבד. לצערנו, הרשת היא מפלצת עם זיכרון קצר. לכן, העובדה שאולי בחרת מספר אפשרויות בעמוד אחד באתר ברשת לא אומרת שום דבר כאשר אתה עובר לעמוד השני. לכן, כיוון שכל עמוד ברשת הוא עולם בפני עצמו, האפשרויות העומדות בפני המפתחים ברשת מצומצמות למדי. איך נוכל לתת למשתמש לבחור סוודר בעמוד הראשון, שעון- יד בעמוד השני, ולשלוח את ההזמנה בעמוד השלישי? על מנת להתמודד עם הקושי הזה, מפתחי הטכנולוגיה המציאו טכניקות מסוימות המסייעות לנו, ביעילות ראויה לציון, לשמור פרטים בין גלישה לגלישה. לרשת עדיין אין זיכרון, אולם הטכניקות הללו נותנות לנו את האשליה שיש לה. במאמר הזה נלמד שלוש שיטות לשמירת מצבים ברשת. נתחיל מה"עוגיות", אשר משמשות לזכירת הגדרות המשתמש בין גלישה לגלישה. נעבור למודול ה CGI ותכונת שמירת המצבים הטמונה בתוכו, בשיתוף עם שדה הטופס החבוי (Venerable (hidden form field. מובן שנעשה הכל בעזרת Perl, ומודול ה CGI. שמירת מצב
|