Thursday, July 29, 2010

State in asp.net

היכן ניתן לשמור מידע בעולם ה - 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 הנוכחי.

Read more: שלמה גולדברג (הרב דוטנט) Part 1, Part 2

Posted via email from .NET Info