UserData

‏ • 21 במאי, 2004

מהו UserData ולשם מה אנו זקוקים לו?

אנו משתמשים באובייקט הUser Data לשם אחסון מידע. User Data אמנם מזכיר עוגיות, אך מסוגל להכיל פי כמה וכמה מידע, והעבודה אתו נוחה בהרבה, במיוחד בצד הלקוח.User Data אחד מכיל 128KB [לשם השוואה, עוגיה אחת מכילה 4 KB]. לכל דומיין באינטרנט ניתן לאכסן 1024KB [באתר אינטרא-נט הקיבולת גבוהה אף יותר – פי 3 לכל UserData ופי 10 לכל דומיין!].



שיטות ותכונות באובייקט ה UserData

תחילה נצטרך למקם את ההצהרה הבאה בתגית ה Head:






1
2
3  




<style type="text/css">
    .storeuserData {behavior:url(#default#userData);}
style
>


ההצהרה הזאת מורה לדפדפן שאלמנטים שיקבלו את Class "storeuserDate" יהיו ברי הכלה של ערכי ה UserDate. לדוגמה – ה DIV הבא יוכל להכיל ערכי UserData:






1  



id="678" class="storeuserData">>


באותה צורה יכלנו, למשל, להגדיר תיבת טקסט:






1  



class="storeuserData" type="text" id="678">

































סוגשםתאור
תכונהexpiresתאריך תפוגה של UserData
שיטה
getAttribute(attributeName)
במידה והערך לא קיים הפונקציה מחזירה null
מחזירה את הערך של Attribute מסוים.
שיטה
removeAttribute(attributeName)
מקבלת Attribute מסוים ומוחקת אותו ואת הערך שבו.
שיטה
setAttribute(attributeName,StringValue)
קובעת ערך של Attribute מסוים.
שיטהsaveשמירת הערכים ב UserData.
שיטהloadאחזרת הערכים מה UserData.




יצירה וקריאה של UserData

נניח שברשותינו Div כזה:






1  



id="showUserData" class="storeuserData">>


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






1
2  




type="text/javascript" language="javascript">


נכניס לתוך משתנה את ה DIV, המשתנה יוכל מעתה להכיל ערכי UserData:






1  



var userDataInside=document.getElementById("showUserData");






כתיבת ערכים לתוך ה UserData:

נכניס ערך לתוך Attribute:






1  



userDataInside.setAttribute("myFirstAttribute","Hello World!!!");


הכנסנו את הערך HelloWorld לתוך ה Attributeשנקרא myFirstAttribute.כמובן שערך זה יכול להיות משתנה…נשמור בתוך ה UserData שנקרא first:






1  



userDataInside.save("first");






קריאת הערכים מתוך ה UserData:

תחילה נאחזר את הערכים שב UserDate:






1  



userDataInside.load("first");


לאחר מכן נכניס את הטקסט השמור ב Attribute שנקרא myFirstAttribute לתוך ה DIV:






1  



userDataInside.innerText=userDataInside.getAttribute("myFirstAttribute");






מחיקת ערכים מתוך ה UserData:

נציין את ה Attribute אותו אנו רוצים למחוק:






1  



userDataInside.removeAttribute("myFirstAttribute");


ונשמור:






1  



userDataInside.save;






קביעת תאריך תפוגה של UserData:

נאתחל משתנה תאריך חדש:






1  



var oTimeNow = new Date();


נקבע למשתנה את התאריך שאנו רוצים שיהיה תאריך התפוגה [לדוגמא בעוד חצי שעה]:






1  



oTimeNow.setMinutes(oTimeNow.getMinutes() + 30);


ניתן לעבוד עם כל הפונקציות הסטנדרטיות לעבודה עם תאריכים.נכניס למשתנה חדש את הייצוג הסטרינגי בפורמט Universal Time Coordinate:






1  



var sExpirationDate = oTimeNow.toUTCString();


נקבע את המשתנה כתאריך התפוגה של ה UserData:






1  



showUserData.expires = sExpirationDate;


ונשמור:






1  



showUserData.save("firstUserData");


אם במקום להוסיף 30 דקות, היינו, למשל, מורידים 30 דקות היינו גורמים למחיקה של ה UserData, ובנסיון ל getAttribute היה מוחזר Null.


לחץ כאן להרצת הדוגמא

תגיות: , , , , ,

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