050-5994911  Tel:    doron@doronamir.comדורון אמיר יעוץ הדרכה ופיתוח תוכנה    MCT \ MCSD

 

www.doronamir.com

 

ViewSate & Stateless Protocol

 

HTTP הינו פרוטוקול סטנדרטי (W3c) להעברת מסמכים על גבי האינטרנט

פרוטוקול זה הוא חסר-מצב (Stateless Protocol)  כלומר בכל פעם שה- Client מבצע בקשה מ ה-Server

התקשורת נסגרת לאחר שליחת המידע מ ה- Server אל ה Client

 

אם קיים מצב אשר צריך להיות מטופל שוב ע"י ה Server , אותו שרת צריך לשלוח את המידע ביחד עם

המידע הקיים ב Response כך שהמידע המתאר את מצב (State) הלקוח לאחר הטיפול ישמר בצד הלקוח ,

ובפעם הבאה כאשר ה Client  ישלח בקשה  שוב אל ה Server  הוא יכיל את המידע ש ה-Server

היה אמור לזכור אודות מצב הלקוח  , ה Server יקבל את המידע הישן (שנשלח מהשרת )+ החדש(שנעשה בצד הלקוח)

ויטפל ב Request כאילו זכר את ה Client  הנוכחי .

 

 

 

 

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

אך לעומת זאת ניתן להשתמש במידע הנשלח מהשרת כדי לשמור את המידע ע"י תכונה בשם ViewState

 

 

 

דוגמה נוספת היא שימוש באובייקט ViewState  - (state bag) בכדי לשמור מידע לפי בחירה

 

 

בדוגמה הנ"ל סכום ההפקדה נשמר אל תוך משתנה אשר שומר את ערכו בצד הלקוח

המשתנה Total (state bag) מקבל את המידע לאחר ריצה בצד השרת  ובסיום הפעולה  שולח אל הלקוח את המידע

בפורממט HTML וכאשר הלקוח חוזר שוב אל השרת הוא מוסר את ערך המשתנה Total כפי שהיה לפני הבקשה החדשה

כך אנו מקבלים תוצאה המתחשבת במצב הלקוח למרות פרוטוקול ה Stateless  .

 

     private void Button1_Click(object sender, System.EventArgs e)

          {

             

             

     ViewState["Total"]=Convert.ToInt32(ViewState["Total"])+ Convert.ToInt32( TextBox1.Text);

     TextBox2.Text = Convert.ToString(ViewState["Total"]);

 

       }

 

מצב ה ViewSate נשמר בצד הלקוח :

 

 

 

 

 

050-5994911  Tel:    doron@doronamir.comדורון אמיר יעוץ הדרכה ופיתוח תוכנה    MCT \ MCSD