PracticU

יצירת אתר עם ריבוי שפות ב-NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › יצירת אתר עם ריבוי שפות ב-NodeJS
מילון מושגים:
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.
jQuery - ספריית JavaScript ותיקה שמפשטת את הגישה לרכיבי הדף, אירועים ואנימציות בדפדפן.
AJAX - טכניקה שמאפשרת לדף אינטרנט לשלוח ולקבל נתונים מהשרת ברקע ולעדכן את התצוגה בלי לטעון מחדש.
ראוט - הגדרה שמקשרת כתובת בקשה לקוד שמטפל בה באפליקציה. גם מסלול שדרכו עוברות חבילות ברשת.
מאפיין - תכונה שמצמידים לרכיב ומתארת אותו או את התנהגותו, למשל מאפיין של תגית HTML או שדה באובייקט.
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
עוגייה - קובץ קטן שאתר שומר בדפדפן כדי לזכור מידע על המשתמש בין בקשות, למשל מצב התחברות או העדפות.

יצירת אתר עם ריבוי שפות ב-NodeJS
דוגמה מעשית לשימוש ב-cookies: אתר שמציג תוכן בעברית או באנגלית לפי בחירת המשתמש, וזוכר את הבחירה גם אחרי שהדפדפן נסגר.
השלבים העיקריים
1. האתר ההתחלתי: דף HTML עם div לתוכן, jQuery וקובץ index.js. בתוך $(document).ready נקראת הפונקציה getContent, שמבצעת קריאת Ajax לראוט content בשרת ומציבה את התשובה ב-div עם ה-id content. בשרת הראוט מחזיר בינתיים some content.
2. דגלים: מוסיפים div בשם flags עם שתי תמונות img, דגל אנגלית ודגל עברית, מתיקיית assets/images.
3. מאפיין data: לכל תמונה מוסיפים מאפיין data-language עם הערך en או he. מאפיינים שמתחילים ב-data- שמורים למתכנת, שייכים לתקן HTML5 והדפדפן לא מתריע עליהם.
4. תפיסת הלחיצה: ב-jQuery נרשמים ללחיצה על כל img בתוך #flags, וקוראים את הערך עם data('language').
5. שמירה ב-cookie: בלחיצה שומרים ב-document.cookie את language עם הערך שנבחר ותאריך תפוגה של שנה קדימה (בעזרת toUTCString), ומיד קוראים שוב ל-getContent.
6. בצד השרת: ב-cookie-parser בודקים request.cookies.language. אם אין cookie, או שהערך הוא en, מחזירים תוכן באנגלית, ואם הערך he מחזירים תוכן בעברית. ברירת המחדל נקבעת על ידינו, כאן אנגלית.
7. בדיקה: בפעם הראשונה אין cookie ומוצג תוכן באנגלית. לחיצה על דגל יוצרת cookie בשם language ומשנה את התוכן מיד.
למה דווקא cookie
אפשר היה לשלוח את השפה כארגומנט בראוט, אבל cookie נשמר אחרי סגירת הדפדפן. גם אחרי יום או חודשיים, כשהמשתמש חוזר, ה-cookie נשלח אוטומטית לשרת והשרת מחזיר את התוכן בשפה האחרונה שנבחרה, בלי login או רישום.
כך אפשר לבנות אתר שזוכר העדפות שפה של המשתמש בעזרת cookies בלקוח ובשרת.
השיעור הבא בקורס: ניהול סשן Session ב-NodeJS

פרקי ההרצאה: יצירת אתר עם ריבוי שפות ב-NodeJS

  1. 00:00

    אתר מוכן עם jQuery ו-AJAX

  2. 01:18

    התקנת Express ו-cookie-parser והרצה

  3. 02:19

    בחירת שפה עם דגלים

  4. 03:43

    מאפייני data של HTML5

  5. 04:46

    הרשמה לאירוע קליק עם jQuery

  6. 05:32

    קריאת השפה שנבחרה

  7. 06:12

    שמירת השפה כ-cookie קבוע

תמלול ההרצאה: יצירת אתר עם ריבוי שפות ב-NodeJS

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

  1. 00:03

    אז בואו נראה דוגמה שהיא real-life example לשימוש בcookies ואז נבין מה זה בעצם נותן לנו. אז יש לנו פה אתר שהוא כבר אתר מוכן. יש לנו כאן דף html, יש לנו כאן איזושהי div, מה שאנחנו עושים כשאנחנו מריצים את האתר הזה אז אנחנו רואים קודם כל שהוא משתמש ב-jQuery ויש לנו פה את קובץ האינדקס של צד ה-client.

  2. 00:31

    יש לנו פה את הפונקציה דוקיומנט רדי של jQuery שכל מה שהיא אומרת זה אני רצה רק אחרי שה-HTML סיים להתען.

  3. 00:42

    ואז יש פה קריאה לפונקציה מקומית get-content שהיא מבצעת קריאת אג'אקס לשרת דרך jQuery ל-route-content וכשהוא מביא את ה-Response את התוכן אז אנחנו מכניסים אותו בעזרת jQuery לתוך תגית content עם ה-id-content זה סימן של ID ב-JQuery, אם אתם לא ממש יודעים JQuery, לא קרה כלום.

  4. 01:08

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

  5. 01:21

    סימן דולר, זאת הפונקציה המרכזית של JQuery. בצד של השרת יש לנו סך הכל את ה-Route Content ואנחנו מחזירים בואו קודם כל נעריץ את זה, נבצע התקנה ראשית של אקספרס, אני רואה שעדיין אין לנו פה את ה-Node Modules ויש לנו פה גם התקנה של ה-Cookie Purser שתכף נשתמש איתו ואנחנו רוצים להעריץ את זה.

  6. 01:52

    Node App, Go, המערכת רצה, בואו נבצע גלישה ויש לנו Some Content. התוכן הזה שאנחנו רואים כאן הגיע מהאתר, סאם קונטנט, ברגע שביצענו גלישה לדף הבית הוא טוען אוטומטית את הג'אווה סקריפט, יש לי פה קריאה לפונקציה הזאת, היא הולכת לראוט, מביאה תוכן דינמי ומציגה אותו.

  7. 02:19

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

  8. 02:35

    יש לנו כאן שני דגלים דגל של ארצות הברית דגל של ישראל ואנחנו רוצים להציג את הדגלים האלה בדף ה html וכאשר היוזר בוחר דגל אנחנו רוצים להביא לו תוכן שמותאם לשפה שהוא בחר יש לנו כאן div וניתן לה id div flags יש לנו כאן ing english זה הדגל הראשון בואו נגדיר שאנחנו

  9. 03:11

    ב-assets images ויש לנו דגל שנקרא enpng נשכפל יש לנו כאן את hebrew he והקוד ומה שאנחנו רוצים לעשות זה שהקוד של ה-JavaScript המקומי ידע איזה תוכן להביא כתלות בתמונה שלחצו עליו.

  10. 03:43

    אז איך אנחנו נדע על איזה תמונה לחצו? אני הולך בעזרת jQuery להירשם בבת אחת לשתי התמונות. אז מה שאני אעשה, אני אגדיר כאן משתנה, נקרא לו data language, נקרא לו data lang שווה ל-EN.

  11. 04:05

    וdata lang שווה he ומה זה בעצם מאפיין data מקף שאנחנו יכולים לתת אנחנו יכולים להמציא פה אפילו נקרא לזה language המצאנו איזשהו מאפיין כל המאפיינים שמתחילים בdata מקף זה מאפיינים ששמורים למתכנת המתכנת יכול להמציא מאפיין וזה ממש שייך לתקן של html 5 כך שאנחנו יכולים בתור מתכנתים להשתמש בכל מיני מאפיינים שבא לנו.

  12. 04:42

    כולם חייבים להתחיל אבל בדי תם הכף, הדפדפן לא ייתן שום שגיאות על המאפיינים האלה כי בידוע שהמתכנת ממציא אותם. אז יש לנו פה language, English ו-language Hebrew, אנחנו יכולים עכשיו לגשת ל-JavaScript של האינדקס ולהירשם, בואו נבצע את זה פה למעלה בעזרת jQuery

  13. 05:02

    ל-id div flags זאת הזאת שקיימת פה וכל סלקטור או כל תגית שנמצאת בתוכה, כל תגית אימג' שנמצאת בתוכה והיוזר לוחץ על קליק על התגית הזאת אנחנו רוצים לבצע את הפונקציה הזאת שקודם כל בואו נבדוק שהיא אכן עובדת.

  14. 05:32

    נרפרש, הנה שני הדגלים טסט הראשון, טסט השני. אם יש לנו את היכולת לתפוס את האירוע בואו נראה אנחנו יכולים לתפוס את המשתנה data language.

  15. 05:46

    ניקח פה const language שווה ובעזרת jQuery ניגש לאובייקט הנוכחי שהעלה את האירוע למאפיין שנקרא data language ונציג את הלנגוויג'. נרפרש, הנה אנחנו רואים שהצלחנו להשיג e n ו-h e.

  16. 06:12

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

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: שימוש ב-Cookies בצד שרת ב-NodeJS

ההרצאה הבאה: ניהול סשן Session ב-NodeJS

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

  • יצירת אתר חדש ב-Sharepoint
  • ריבוי חשבונות - AWS MultiAccount
  • אתר Netcraft
  • יצירת מפתחות הצפנה ב-AWS - פרויקט NodeJS

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

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React