PracticU

Page Events - אורך חיי דף וארועי הדף

בלי כתוביותעם כתוביות
PracticU › קורס ASP.NET › Page Events - אורך חיי דף וארועי הדף
מילון מושגים:
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.
מאפיין - תכונה שמצמידים לרכיב ומתארת אותו או את התנהגותו, למשל מאפיין של תגית HTML או שדה באובייקט.
C# - שפת תכנות מונחית עצמים של מיקרוסופט, המשמשת בעיקר לפיתוח יישומים על פלטפורמת .NET.
קומפיילר - תוכנה שממירה קוד מקור שנכתב בשפת תכנות לקוד שהמחשב יכול להריץ, ומדווחת על שגיאות תחביר.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.

Page Events - אורך חיי דף וארועי הדף
השיעור עוסק באירועי הדף, בסדר שבו הם מתבצעים בכל ריצה לשרת, ובמאפיינים של תגית Page שמנהלת את הדף.
מחזור החיים של הדף
כל ריצה לשרת, בין אם זו הטעינה הראשונה ובין אם לחיצה על לחצן, יוצרת אובייקט חדש ממחלקת הדף. האירועים מתבצעים לפי סדר קבוע, כפי שמופיע בטבלה של מיקרוסופט:
1. PreInit: אירוע שמיועד בעיקר לקוד של ערכות נושא (themes).
2. Init ו-InitComplete: אתחול הדף והרכיבים.
3. PreLoad ו-Load: האירוע Page_Load הוא הנפוץ ביותר, והוא מתבצע בכל ריצה לשרת.
4. Control Events: אירועי הרכיבים, כמו לחיצה על לחצן. הם מתבצעים אחרי Load.
5. LoadComplete, PreRender ו-SaveStateComplete: שלבי הכנה לפני ההצגה.
6. Render: הדף מרנדר את עצמו ל-HTML.
7. Unload: שחרור משאבים.
הסדר תמיד זהה, גם אם כתבו את הפונקציות בסדר אחר בקובץ. מכאן ש-Load תמיד מתבצע לפני אירוע הלחצן.
IsPostBack
פוסטבק הוא גלישה חוזרת לאותו דף שנשלחת מתוך הדף עצמו, למשל בלחיצה על לחצן. הגלישה הראשונה לדף אינה פוסטבק. המאפיין IsPostBack מחזיר false בגלישה הראשונה ו-true בכל גלישה אחרי זה. לכן קוד שצריך להתבצע רק בטעינה הראשונה נכתב בתוך if (!IsPostBack). בדוגמה של שעה שמוצגת על המסך, השעה מופיעה רק בטעינה הראשונה.
תגית Page
בקובץ ה-ASPX התגית Page מכילה מאפיינים שמתארים את הדף:
1. Language: שפת התכנות של הדף, למשל C#. ASP.NET משתמשת בה כדי לבחור את הקומפיילר.
2. AutoEventWireup: כש-true, ASP.NET מזהה אירועי דף לפי השם שלהם, למשל Page_Load. כש-false, האירועים לא מזוהים אוטומטית ויש לחבר אותם ידנית.
3. CodeFile: הקובץ של קוד ה-C# שמנהל את הדף.
4. Inherits: שם המחלקה שמנהלת את הדף, בתוך קובץ הקוד.
קוד בתוך הדף
אפשר לכתוב קוד C# ישירות בתוך הדף, בתוך תגית script עם runat="server", בלי קובץ נפרד. זה נוח לדוגמאות קצרות. לקוד רציני ממליצים על קובץ C# נפרד.
בסוף השיעור הסטודנט יודע לקבוע איזה קוד יתבצע בכל שלב, להבדיל בין טעינה ראשונה לפוסטבק, ולהבין את מאפייני תגית Page.
השיעור הבא בקורס: Multiple Pages - שימוש במספר דפים

פרקי ההרצאה: Page Events - אורך חיי דף וארועי הדף

  1. 00:00

    אירועי דף ב-ASP.NET

  2. 01:26

    מחלקת הדף היורשת מ-Page

  3. 02:44

    אירוע PageLoad

  4. 03:22

    מאמר Page Life Cycle במערכת MSDN

  5. 04:40

    אירועי Control Events

  6. 06:14

    סדר הביצוע והרנדרינג

  7. 07:13

    כתיבת קוד באירועים

  8. 08:26

    הוספת אירוע PreInit

תמלול ההרצאה: Page Events - אורך חיי דף וארועי הדף

הטקסט המלא של הדקות הראשונות בהרצאה «Page Events - אורך חיי דף וארועי הדף» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

    הדבר הבא שאנחנו הולכים לראות ב-sp.net זה אירועי דף. בואו נפתח פרויקט חדש ונצרף דף חדש לפרויקט. נקרא לדף הזה Homepage ונסתכל מה יש לנו ב-Solution Explorer.

  2. 00:58

    אז אנחנו ראינו כבר שקיימים בעצם שני קבצים. קובץ אחד הוא קובץ ASPX וזה תבנית ה-HTML שקיימת בדף. תבנית הזאת מכילה גם קוד HTML טהור וגם רכיבי ASP.NET שניתנים לשינוי מצד השרת.

  3. 01:21

    בנוסף קיים לי קובץ C-Sharp שמאפשר לגשת לרכיבי צד השרת ולעדכן אותם. אבל בואו טיפה נסתכל מה יש בקובץ ה-C-Sharp. אז ראשית כל דף ב-ASP.NET מנוהל על ידי מחלקה נפרדת.

  4. 01:49

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

  5. 02:10

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

  6. 02:41

    וכל אירועי הדף מתבצעים אלא אם כן הגדרנו טריק מבחינת ייעול שאנחנו נראה בהמשך ואנחנו הולכים לראות עכשיו אילו אירועים מתבצעים אז דבר ראשון by default אנחנו רואים שקיים אירוע שנקרא page load האירוע הזה מתבצע כאשר ישנה הריצה לשרת לקבלת הדף, אבל למעשה קיימים עוד אירועים אחרים ברמת הדף.

  7. 03:11

    בואו נסתכל אילו אירועים קיימים. ישנו מאמר במערכת העזרה של מיקרוסופט שנקרא ASP.NET Page Life Cycle Overview. מאמר הזה במערכת העזרה של מיקרוסופט, מערכת העזרה נקראת MSDN, מכיל הסבר לגבי אילו אירועים מתבצעים ברמת הדף.

  8. 03:53

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

  9. 04:12

    אירוע ראשון, pre-init. אנחנו רואים שהאירוע הזה מכיל קוד שנכתב עבור דברים שנקראים theme או ערכות נושא. אנחנו בהמשך נגיע אליהם.

  10. 04:27

    לאחר מכן מגיע אירוע init ואז init-complete. preload, Load זה האירוע שאנחנו רואים ב-Default, כמובן אצלנו הוא נקרא Page-Underline-Load, בטבלה הזאת הוא נקרא Load.

  11. 04:49

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

  12. 05:08

    לדוגמה, בנוסף קיים לי גם איזשהו לחצן, בואו נגדיר SP.2 Button ואני הולך ולוחץ על הלחצן דאבל קליק.

  13. 05:39

    אז אני רואה שיש לי כאן עכשיו שני אירועים. אירוע אחד נקרא Page Load שאני יכול לתכנת בו קוד, ואירוע אחר נקרא Button 1 Click, זה האירוע של הלחצן.

  14. 05:52

    הטבלה הזאתי שראינו כרגע מסדרת את האירועים לפי סדר הביצוע שלהם. אני רואה ש-Load מתבצע לפני Control Events, לכן לואוד התבצע לפני האירוע קליק שנחשב כקונטרול איבנטס.

  15. 06:09

    לאחר מכן אני רואה שיש לי לואוד קומפליט לאחר מכן פרי רנדר פרי רדן קומפליט סייב סטייט קומפליט אנחנו נדבר על סייב סטייט בהמשך יש לנו פה פעולה זה לא באמת איבנט אלא פעולה שמתבצעת שבה הדף מרנדר את עצמו לקוד html מה זה אומר מרנדר את עצמו אנחנו דיברנו על מונח הרנדרינג באחד השיעורים הקודמים ואומר שכל אחד מרכיבי הדף שהוא צד שרת הופך את עצמו

  16. 06:48

    לרכיב html מתאים או למספר רכיבי html מתאימים. הפעילות הזאת מתבצעת כאן ולאחר מכן מתבצע אירוע unload ששייך לדף שמשחרר משאבים שהוגדרו בזיכרון.

  17. 07:04

    כל האירועים האלה זה אירועים ברמת הדף חוץ מ-control events ששייכים לרכיבים עצמם שמתבצעים בכל פעם שאנחנו גולשים לדף. זאת אומרת שאם אני עכשיו כותב קוד באירוע Page Load לדוגמה response.write I'm in the Page Load ואותו דבר אני אכתוב בלחצן I'm in Button 1 Click בואו נריץ את הדף הזה.

  18. 08:07

    ראשית אני רואה שכתוב לי פה למעלה I'm in the Page Load זה אומר שאירוע Page Load התבצע בואו נלחץ על הלחצן ונראה הפעם שיש לי גם I'm in the page load וגם I'm in the button אחד קליק.

  19. 08:24

    כאשר לחצתי על הלחצן הזה שני האירועים התבצעו, זאת הסיבה שאני רואה את שניהם. בואו נוסיף עוד אירוע. נלך לטבלה וניקח את אחד האירועים היותר קדומים ל-page load.

  20. 08:43

    בואו ניקח את אירוע pre init. בשביל לכתוב קוד באירוע pre init, נשכפל את כותרת אירוע page load ונקרא לו page pre init. בואו נראית שורה אחרי הדפסת כל אחד מהם.

  21. 09:32

    נריץ שוב את האתר. ראשית אני רואה את pre init התבצע ואז pre load, page load. page pre init ואז page load.

  22. 09:59

    בואו נלחץ על הלחצן ונראה עכשיו ששלושתם התבצעו.

לקורס המלא: קורס ASP.NET אונליין

ההרצאה הקודמת: פרוטוקול HTTP הסבר על Request

ההרצאה הבאה: Multiple Pages - שימוש במספר דפים

הרצאות קשורות מקורסים אחרים

  • Device Events
  • Animation Events
  • אירועים - Events - חלק 1
  • מחזור חיי פיתוח

קורסים נוספים במסלול

  • קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט
  • קורס דוט-נט - NET Core. - עם Rest API
  • קורס MVC
  • קורס Git ו-GitHub עם Visual Studio