מדריך ASP – האובייקט Response
Response | ||
אוספים (Collections) | תכונות (Properties) | שיטות (Methods) |
---|---|---|
Cookies (נדון בפרק נפרד) | Buffer | Write |
Charset | BinaryWrite | |
ContentType | Clear | |
Expires | End | |
ExpiresAbsolute | Flush | |
IsClientConnected | Redirect |
Response.Write
כדי להציג את הפלט מקוד ה-ASP, באפשרותינו להשתמש בשתי שיטות:
<%=StrValue%> <%Response.Write(strValue)%>
בשתי הדרכים, התוצאה תהיה זהה, הערך של strValue יוצג על הדף שיקבל המשתמש.
Response.Buffer
לרוב, התוצאה של עיבוד דף ה-ASP נשלחת אל הלקוח בתזמון התלוי בשרת. בקבצים שזמן העיבוד שלהם ארוך, הלקוח עלול לקבל תחושה
1שהשרת איו מגיב. כדי לקבל שליטה על הצגת התוצאה, נגדיר בראש הדף את תכונת ה-Buffer כ- true.
<%Response.Buffer = true%>
Flush, Clear, End
שלושת השיטות האלו עוזרות לנו לשלוט על פעולת ה-buffer.
Response.Flush אומר לשרת שעליו לשלוח את הפלט שעובד עד כה עכשיו.
Response.Clear מנקה את ה-buffer, וכל מה שהיה בו לעולם לא יגיע ללקוח.
Response.End מסיים את עיבוד הסקריפט באותה נקודה.
הערה:
השימוש ב-Response.Clear ו- Response.Flush ייתן שגיאה עם ה-buffer לא נקבע ל-true.
Response.Redirect
משמש כדי להעביר את הלקוח מהדף הנוכחי לדף חדש. יש לזכור כי שימוש בשיטה זו לאחר שכבר הוצג פלט על
הדף (ב-body), תגרום לשגיאה. זאת מכיוון שבכל בקשת דף משרת, הוא שולח לנו לפני הכל גם כמה שורות הנקראות
HTTP Headers ברגע ששורות אלו נכתבו בדף, אין אנו יכולים להשתמש בשיטה.
בדוגמא הבאה ישנו טופס, שבשליחתו מעביר את המשתמש באמצעות Response.Redirect לדף המתאים לבחירה שהוא ביצע בטופס.
Response.IsClientConnected
כאשר ישנו קובץ שזמן העיבוד שלו ארוך, לדוגמאת קובץ העובד מול בסיס נתונים, לפעמים אנו רוצים לדעת האם המשתמש עדיין מחובר, ולהמשיך או להפסיק את עיבוד הקובץ. זהו מאפיין בוליאני, המחזיר true או false.
VBScriptJScript
<% Do while i<100000 ' do some stuff... If Not Response.IsClientConnected Then Response.End End If Loop %>
<%@ Language=JScript%> <% while(i++<100000){ // do some stuff... if(!Response.IsClientConnected) Response.End } %>
Response.Expires
קובע כמה זמן (בדקות) הדף ישאר בזכרון המטמון של הלקוח. אם הלקוח חוזר לדף, והזמן שהוגדר עדיין לא עבר, הדף ייטען מהזכרון, אך עם הזמן עבר, השרת יעבד שוב את הדף.
כדי להגדיור שדף לעולם לא יטען מזכרון המטמון, נכתוב בראש הדף:
<% Response.Expires=0 %>
הערה:
אם המאפיין נקבע פעמיים באותו הדף, הערך הנמוך יותר הוא זה שייחשב.
Response.ExpiresAbsolute
מאפשר לנו להגדיר את התאריך המדוייק בו יפוג תוקפו של הדף בזכרון המטמון.
VBScriptJScript
<% Response.ExpiresAbsolute=#May 05,2001 05:30:30# %>
<%@ Language=JScript%> <% Response.ExpiresAbsolute="07/21/2006" %>
הערה: אם המאפיין נקבע פעמיים באותו הדף, התאריך הנמוך יותר הוא זה שייחשב.
Response.ContentType
מחרוזת המגדירה את סוג התוכן של האובייקט. ברירת המחדל היא "text/html", סוגים נפוצים אחרים: "image/gif", "image/jpeg", "text/plain".
Response.Charset
קובע את הקידוד של האובייקט.
<% Response.Charset="ISO8859-1" %>
תגובות בפייסבוק