וובמאסטר - תיכנות ובניית אתרים

מדריך ASP - האובייקט Application

entry/‏ 15 יולי, 2003
F+
F-
Application
אוספים (Collections)תכונות (Properties) שיטות (Methods) ארועים (Events)
Contents LockOnStart
StaticObjects UnlockOnEnd



מהי אפליקציה?

אפילקצית אינטרנט מוגדרת ככל הקבצים (asp,htm...) הנמצאים תחת ספרייה וירטואלית כלשהי, ותתי הספריות שלה. שרת אחד מריץ יותר מאפליקציה אחת. האובייקט Application מכיל מידע על האפליקציה, ומשמש כדי לשתף מידע בין כל משתמשי האפליקציה.

Application.Contents

זהו אוסף כל הנתונים אשר הוספו לאפליקציה. כדי להוסיף נתון ("משתנה Application") נכתוב בדף ה-asp:

<% Application("VarName") = "Hello"%> 
נוכל לגשת למשתנה, לשנותו, להדפיסו או להוסיף משתנים חדשים מכל קבצי ה-asp באפליקציה, בצורה הבאה:

<% Response.Write( Application("VarName")) %> <br>
מעבר על כל האוסף:

VBScriptJScript
<% 
    For Each Key In Application.Contents
        Response.Write (Key & "=" & Application(key) & "<br>")
    Next 
%> 

המאפיין Application.Contents.Count יזיר לנו את מספר הערכים המאוכסנים באוסף.

Application.StaticObjects

הוא אוסף כל המשתנים שנוצרו באפליקציה באמצעות התג <OBJECT> (ולא באמצעות Server.CreateObject).
זוהי לולאה שעוברת על כל האוסף ומדפיסה את שמו וערכו של כל אובייקט:

VBScriptJScript
<% 
    Dim ObjProp 
     
    For Each ObjProp in Application.StaticObjects
     Response.write ObjProp & " : "_
     & Application.StaticObjects(ObjProp) &"<BR>"
    Next 
%> 

Application.Lock ו- Application.Unlock

כאמור, משתני Application נגישים לכל הקבצים באפליקציה, ולכל המשתמשים. לכן יש לנהוג בהם ביתר זהירות. אם שני משתמשים ייגשו בו זמנית לאותו משתנה וינסו לשנותו, התוצאות עלולות להיות בלתי צפויות. כדי למנוע מקרים אלו, עומד לרשותינו "מנגנון נעילה" למשתנים אלו, אשר ימנע את המצב המתואר למעלה. כאשר אנו קוראים לשיטה Application.Lock, אף סקריפט אחר אינו יכול לשנות את המידע המצוי באובייקט ה-Application עד שנקרא לשיטה Application.Unlock. נעילת האפליקציה עלולה ליצור צוואר בקבוק, כאשר כמה משתמשים "מחכים בתור" כדי לשנות משתנה אפליקציה. לכן יש להשתמש בזהירות בשיטות אלו, ולנעול את האפליקציה לזמן קצר ככל האפשר.

VBScriptJScript
<% 
    Application.Lock 
    Application("NumVisits") = Application("NumVisits") + 1 
    Application.Unlock 
     
    Response.Write "This application page has been visited" _
    & Application("NumVisits") & " times!"
%> 

Application_OnStart ו- Application_OnEnd

שתי רוטינות אלו ממוקמות בקובץ global.asa (עליו נדון בהמשך).
Application_OnStart מתבצעת פעם אחת בלבד, בפעם הראשונה בו לקוח כלשהו מבקש מהשרת קובץ asp השייך לאפליקציה.

VBScriptJScript
<script language="vbscript" runat="server"> 
    Sub Application_OnStart
        ' some code 
    End Sub
</script> 

Application_OnEnd מתבצעת בסיום האפליקציה, כאשר ה-IIS נעצר ע"י מערכת ההפעלה או ידנית (לרוב קורה כאשר השרת מכובה). הזמן העומד לרשות הארוע הוא קצת מאוד, לכן רצוי להמנע מסקריפטים ארוכים או כבדים.

VBScriptJScript
<script language="vbscript" runat="server"> 
    Sub Application_OnEnd
        'some code 
    End Sub
</script> 

entry

סטודיו לבניית אתרים שהוקם בינואר 2005
אתר: http://www.entry.co.il
תגיות: ASP‏  /  מדריך‏  /  Application‏  /  onStart‏  /  global.asa‏  

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

תגובות למאמר



עוד במדריך

תגיות פופולאריות

X
הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
וובמאסטר © כל הזכויות שמורות