קריאה וכתיבה של Cookies בעזרת Javascript

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

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

בנקודה זו הרשו לי להפציר בכם לא לעשות שימוש כזה ב - Cookies. לשם העברת פרמטרים מדף לדף ישנן שיטות אחרות יעילות הרבה יותר למשל באמצעות Query Strings או באמצעות Session Variables ועוד.

נעשה שימוש ב - Cookies כדי לשמור מידע מיוחד לגולש על המחשב שלו כדי שבפעם הבאה שהגולש יבקר באתר שלנו נוכל להתאימו אליו באופן אישי. אין מגבלה למספר ה - Cookies שאתר אחד יכול לשמור בדיסק הקשיח של הגולש.

"Cookie משויך לאתר אינטרנט ולא לדף מסוים בו. משמעות הדבר היא שניתן לכתוב Cookies מדף אחד באתר ולקרוא את אותו Cookie מדף אחר לגמרי."

כל Cookie מורכב משלושה חלקי מידע:

1. תיאור מידע וערך תואם לתיאור זה. התיאור למשל יכול להיות bgColor והערך יהיה: RED .

2. תאריך שבו יפוג תוקפו של ה - Cookie. מרגע שפג תוקפו של Cookie אזי מבחינת השרת השולח הוא לא יהיה קיים יותר.

3. דומיין והדרך לדומיין. למשל: www.codeanan.co.il דבר זה חשוב משום שכך נוצר הקשר בין ה - cookie לבין הדומיין שאליו הוא שייך ואשר אליו יישלח ה - Cookie אם המשתמש יגלוש שוב באתר זה. באמצעות ערך זה ניתן גם לשלוט לאיזה דפים ה - Cookie יישלח. ניתן לציין דף ספציפי או ספריה של דפים. למשל www.codeanan.co.il/javascript יגרום לכך שכל Cookie שאצור באתר זה יישלח לדפים מהספריה Javascript.

הקוד שלנו לכתיבת COOKIE ב - ASP.NET ייראה כך:

function WriteCookie(name, value, days)
{
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

הפונקציה המתוארת בדוגמה למעלה מקבלת שלושה ערכים: את שם ה - Cookie; את התיאור והערך הצמוד לו ואת מספר הימים שבהם ה - Cookie יהיה תקף.

דוגמת קוד לקריאת Cookie:

function readCookie(name)
{
var ca = document.cookie.split(';');
var nameEQ = name + "=";
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}

הפונקציה לקריאת Cookie מקבלת כמשתנה את שם ה - Cookie שאותו אנו רוצים לקרוא ומחזירה את הערכים שבו, אם הם קיימים, ואם לא היא מחזירה NULL.


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש