State in asp.net

14 ביולי 2010

תגיות: , , ,
תגובה אחת


 



היכן ניתן לשמור מידע בעולם ה – web.


 

 

כידוע לכל מפתח WEB מתחיל – עולם ה – WEB הינו state less כלומר לפי ההגדרה אתר לא אמור לשמור מידע על המשתמשים בו, למרות זאת הרבה פעמים אנחנו צריכים לשמור מידע.

 

בפוסט הזה נסכם את האופציות.

 

 

צד הלקוח.

 


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

 

hidden filed – ככל האלמנטים מסוג input הערכים שבהם נשלחים לשרת ולכן אפשר לשמור בו מידע מבלי שהמשתמש יראה, כמובן שאחרי מעבר לדף אחר מאבדים את הערכים.

 

query string – מאוד דומה ל – hidden field אך הרבה יותר נפוץ ובדרך כלל נשמור בו מעט מידע שיגידו לדף מה לעשות ואיך לטעון את העמוד.

 

View State – סוג של hidden filed שיודע לקבל כל אובייקט שאפשר לעשות לו סירלזיצייה – היתרון שלו שנקבל בצד השרת את האובייקט ולא מחרוזת.

 

IE8 DOM Storage – יכולת חדשה של IE8 לשמור מידע בצד הלקוח. לקריאה נוספת

 

 

צד השרת

 


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

 

Application – אותו דבר כמו static רק שהוא Dictionary שה – key הוא מחרוזת וה – value הינו כל אובייקט. (ברירת מחדל בזיכרון שעתיים)

 

Session אותו דבר כמו application רק שנשמר ברמת המשתמש (ברירת מחדל בזיכרון 20 דקות)

 

Cache – אותו דבר כמו Application אבל נותן את היכולת לקבוע זמן ריענון או להיות תלוי בקובץ (האם היה שינוי) או בבסיס נתונים.

 

Output Cache – נותן את היכלות לשמור פלט של html כדי שלא יצטרכו לייצר את כל הדף מחדש – כלומר אם נחליט לשמור את הדף ב – output cache למשך 20 דקות, הראשון שיגיע לעמוד יפעיל את ה – page load וכל שאר האירועים ובמשך 20 דקות כל המשתמשים שיגיעו לעמוד יקבלו את אותו פלט של html שהמשתמש הראשון קבל מתוך הזיכרון של השרת.

 

Context.Items – שומר את הערכים למשך ה – Request הנוכחי.

 

 

הוסף תגובה
facebook linkedin twitter email

להגיב על martin77 לבטל

האימייל לא יוצג באתר. שדות החובה מסומנים *

תגובה אחת

  1. martin7714 ביולי 2010 ב 22:10

    מה לגבי יתרונות וחסרונות של כ"א? מתי כדאי להשתמש במה ולמה?
    למשל, כל מה שבצד הלקוח יעיל עבור פיסות מידע קטנות, כי המידע נשלח לשרת בכל פניה.
    בנוסף, יש בעיתיות מבחינת אבטחת מידע. ראה ערך cookie tampering ו querystring tampering.
    וכאשר מיישמים שמירת state בצד השרת יש לקחת בחשבון מגבלות של scalability. כאשר יש יותר משרת web אחד, והפניה של המשתמש לא מגיע תמיד לאותו שרת.
    במקרים כאלו ניתן ליישם state server או ב sqlstate אבל זה יבוא כמובן ע"ח performance.

    הגב