מדריך ASP – הקובץ global.asa

הקובץ global.asa הוא קובץ אופציונלי, המשמש אותנו להצהרת אובייקטים ומשתני application ו-session,
ולניהול הארועים Session_OnStart, Session_OnEnd, Application_OnStart ו- Application_OnEnd.

קובץ זה מופעל אוטומטית ע"י השרת עם הכניסה הראשונה של המשתמש לדף, ועם היציאת של המשתמש מהאתר.
אין אנו יכולים לקרוא לקובץ global.asa בעצמינו!
את הקובץ global.asa נאחסן בתיקייה הראשית של האפליקציה. לכל אפליקציה יהיה מקסימום קובץ global.asa אחד בלבד! אך אין הכרח להשתמש בו.

הגבלות:


  • הקובץ global.asa אינו משמש להצגת מידע. לא ניתן להציג טקסט שכתוב בו או להשתמש בפונקציות צד-לקוח.
  • אין אפשרות להשתמש ב-#include בקובץ global.asa
  • כל פרוצדורה או פונקציה הכתובה בקובץ Global.asa ניתנת לקריאה רק מתוך הקובץ עצמו. אין אפשרות לקרוא להם מתוך קובץ asp אחר.
  • אין להשתמש בתגי asp <%%> בתוך הקובץ. השרת מזהה את הקובץ כקובץ asp ושימוש בתגים אלו יגרום לשגיאה.

מבנה הקובץ:

VBScriptJScript

  


  

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

ישנם אינסוף שימושים לקובץ, והדוגמא הקלאסית לשימוש בקובץ global.asa היא יצירת מונה כניסות, וספירת כמות הגולשים הנמצאים כרגע באתר.
קודם נראה את הקוד כולו, ואז יבואו ההסברים:

VBScriptJScript

  


  


ראשית כל, נחליט היכן יש לאכסן נתונים אלו. למדנו שני הפרקים הקודמים על משתני application ו-session ועל האירועים שלהם.
אנו יודעים שמשתנה application זמין לכל המשתמשים באתר, בכל דף שהוא. לכן הגיוני לאחסן את הנתונים שלנו במשתני application.
("application("total_users – יחזיק את מספר הגולשים שנכנסו עד כה לאתר.
("application("current_users – יחזיק את מספר הגולשים כרגע באתר.
משתנים אלו יאותחלו ל-0 בתחילת האפליקציה, כלומר, ב-application_OnStart. ומאותו רגע נתחיל לספור את המשתמשים.

VBScriptJScript

Sub Application_OnStart
   Application("Total_Users") = 0
   Application("Current_Users") = 0
End Sub 


function Application_OnStart(){
   Application("Total_Users") = 0
   Application("Current_Users") = 0
} 

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

VBScriptJScript

Sub Session_OnStart
   Application.lock
      Application("Total_Users") = Application("Total_Users") + 1
      Application("Current_Users") = Application("Current_Users") + 1
   Application.unlock
End Sub 


function Session_OnStart(){
   Application.Lock()
      Application("Total_Users")=Application("Total_Users")+1
      Application("Current_Users")=Application("Current_Users")+1
   Application.unLock()
} 

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

VBScriptJScript

Sub Session_OnEnd
   Application.lock
      Application("Current_Users") = Application("Current_Users") - 1
   Application.unlock
End Sub 


function Session_OnEnd(){
   Application.Lock()
      Application("Current_Users")=Application("Current_Users")-1
   Application.unLock()
} 

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

   Total Users: <%=Application("Total_Users")%>
   Current Users: <%=Application("Current_Users")%>

תגיות: , , , , ,

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