PracticU

שמירת מידע בטלפון - Storage

בלי כתוביותעם כתוביות
PracticU › קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון › שמירת מידע בטלפון - Storage
מילון מושגים:
אחסון - שמירת נתונים באופן קבוע על התקנים כמו דיסקים או שירותי ענן, כך שיישמרו גם לאחר כיבוי.
סשן - פרק זמן של פעילות רציפה בין משתמש למערכת, שבו נשמר מידע על מצבו, למשל לאחר התחברות לאתר.
שרת - מחשב או תוכנה שמספקים שירות למחשבים אחרים (לקוחות) ברשת, למשל אחסון קבצים, אתר אינטרנט או מסד נתונים, ומגיבים לבקשות שלהם.
jQuery - ספריית JavaScript ותיקה שמפשטת את הגישה לרכיבי הדף, אירועים ואנימציות בדפדפן.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
אינדקס - מבנה במסד נתונים שמאיץ חיפוש ושליפה. גם מספר המציין מיקום של איבר במערך.
בייט - יחידת מידע המורכבת משמונה ביטים, ומסוגלת לייצג תו בודד או מספר בין 0 ל-255.

שמירת מידע בטלפון - Storage
השיעור מסביר איך שומרים מידע בטלפון של המשתמש בעזרת Local Storage ו-Session Storage, ואיך קוראים את המידע חזרה כשהאפליקציה נפתחת שוב.
למה שומרים מידע בטלפון
1. שימוש חוזר: האפליקציה מקבלת מידע מהמשתמש, כמו שם או צבע מועדף, ורוצה להשתמש בו בפעם הבאה.
2. בלי שרת: לא כל מידע צריך לעבור לשרת, והמידע יכול להישאר אצל המשתמש.
3. השיטה: Local Storage, שמגיע מ-HTML5, היא השיטה הנפוצה ביותר בעולם הווב לשמירה כזאת.
קבלת מידע מהמשתמש
1. שדה טקסט: בתוך div עם data-role="fieldcontain" יוצרים label ו-input. בתכונה for של התווית נותנים את ה-id של השדה. כך jQuery Mobile מסדר את התצוגה לבד, ולחיצה על התווית מעבירה את הפוקוס לשדה.
2. רשימה נפתחת: select עם אפשרויות. data-placeholder="true" מונע לבחור את האפשרות הראשונה, כמו "Choose Color", ו-data-native-menu="false" מציג את הרשימה לפי jQuery Mobile ולא לפי הטלפון.
שמירה וקריאה
1. שמירה: localStorage.setItem("userColor", value) שומר את הערך לפי מפתח ייחודי.
2. קריאה: localStorage.getItem("userColor") מחזיר את הערך. את הקריאה כדאי לבצע בתוך אירוע deviceready, כשכל הנתונים מוכנים.
3. רענון הרשימה: אחרי שמכניסים ערך ל-select צריך לקרוא ל-selectmenu("refresh"), כדי ש-jQuery Mobile יציג אותו.
4. צביעת הרקע: בתגובה לאירוע change של הרשימה משנים את צבע הרקע של הדף לפי הצבע שנבחר.
ניקוי וסוגי אחסון
1. Session Storage: זהה ל-Local Storage, אבל הנתונים נשמרים רק בתוך הסשן הנוכחי של האפליקציה. לאחר סגירה הם נמחקים.
2. מחיקה: localStorage.clear() מוחק את כל הפריטים, ו-removeItem(key) מוחק פריט אחד.
3. קריאת כל הפריטים: בעזרת length ו-key(index) עוברים על כל הפריטים, ושולפים כל אחד לפי המפתח שלו.
4. נפח: לכל סוג אחסון יש נפח של כ-5 מגה בייט.
שימו לב
המידע נשמר גם אחרי סגירת האפליקציה ופתיחתה מחדש, ולכן אפשר להציג למשתמש את הנתונים שהכניס בפעם הקודמת. כעת אפשר לשמור מידע בין פעמים שהאפליקציה נפתחת, ולשלוף אותו כשצריך.
השיעור הבא בקורס: מיקום הטלפון במפה של גוגל - Geolocation

פרקי ההרצאה: שמירת מידע בטלפון - Storage

  1. 00:00

    שמירת מידע בטלפון ו-Local Storage

  2. 01:34

    טופס קלט ב-jQuery Mobile

  3. 04:13

    תיבת בחירת צבע

  4. 07:30

    הגדרות תצוגה של ה-SELECT

  5. 08:36

    לחצן שמירה והשגת הערכים

  6. 11:50

    שמירה עם localStorage.setItem

  7. 13:49

    טעינת הערכים ב-deviceready

  8. 17:44

    צביעת רקע הדף לפי הצבע

תמלול ההרצאה: שמירת מידע בטלפון - Storage

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

  1. 00:01

    הדבר הבא שאנחנו הולכים לראות זה איך אנחנו יכולים לשמור מידע בתוך הטלפון הנייד של המשתמש. למה חשוב שנדע את זה? למה זה בעצם שימושי?

  2. 00:13

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

  3. 00:28

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

  4. 00:48

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

  5. 01:07

    בטלפון של היוזר. השיטה הנפוצה ביותר לשמור מידע בעולם ה-Web היום היא בעצם שימוש בקונספט של Local Storage שמגיע מ-HTML 5. אז בואו נסתכל איך אנחנו יכולים לעשות את זה.

  6. 01:31

    נאפשר למשתמש לעשות שני דברים. נאפשר למשתמש לבחור או להכניס את השם שלו. עכשיו, שימו לב שאנחנו ב-user interface של jQuery Mobile. ב-JQuery Mobile יש שיטה שבה אנחנו מקבלים מידע על ידי פורם מהיוזר.

  7. 01:57

    מה שאנחנו צריכים לעשות זה לפתוח div data role field contain, לבנות label, לבנות תיבת טקסט או כל רכיב input אחר, לתת שם או יותר נכון ID כרגע, לגשת ללייבל ולהגדיר for ואת ה-id.

  8. 02:58

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

  9. 03:20

    עכשיו, אם היוזר הופך את הטלפון, אנחנו יכולים שהאמולטור יראה לנו איך עושים את זה, בואו נניח rotate left, אז אנחנו רואים אוטומטית שפתאום הלייבל מופיעה משמאל לתיבת טקסט.

  10. 03:40

    זאת אומרת jQuery מובייל יודע אוטומטית איך להציג לנו את זה בצורה הטובה ביותר. נחזיר אותו בחזרה ונראה שפתאום הלייבל נמצאת מעל. מי שעושה את כל הדברים האלה זה jQuery מובייל בגלל שאנחנו משתמשים בשיטה נכונה עם דיו שעוטפת ב-Field Contain עם לייבל כמו שצריך שמחוברת לתיבת הטקסט.

  11. 04:05

    זה אומר גם שאם אנחנו לוחצים על הלייבל פוקוס מיד הופך להיות בתיבה. זה חלק מהעניין אבל כרגע אפשרנו למשתמש להכניס את השם המלא שלו אני רוצה לבקש מהמשתמש עוד משהו ניקח עוד דיו נגדיר data role field contain ומה שאני רוצה לבקש מהמשתמש זה בחירה של צבע אז בואו נוסיף לכאן label עבור צבע

  12. 04:59

    ניקח תגית select תן לה ID וללייבל ניתן 4 את אותו ה-ID בדיוק. כעת אנחנו יכולים להכניס מספר צבעים. יש לנו פה אופשן, ניקח לדוגמה Red, Green, Blue שאלה שלושת צבעי היסוד, Yellow, Genta ו-Cyan שאלה שלושת הצבעים המשלימים של צבעי היסוד,

  13. 06:01

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

  14. 06:21

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

  15. 06:40

    בחרנו גרים. Choose Color, נבחר Choose Color. לא יודע אם אני רוצה שהמשתמש יוכל לבחור Choose Color. בואו נוסיף עוד כמה דברים דבר ראשון יש לנו אפשרות מבחינת jQuery Mobile להוסיף כאן data placeholder true בואו נראה ספציפית אם אנחנו יכולים לבחור אותו הוא לא נותן לנו לבחור אותו מבחינת התיבה עצמה רק את האחרים אנחנו יכולים לבחור אני בוחר choose

  16. 07:21

    color אני לא רואה כלום אוקיי הדבר הבא שאנחנו יכולים להגדיר מבחינת jQuery Mobile זה data-native-menu=false זה אומר שאנחנו לא רוצים שהטלפון הנייד יציג לנו את המניו בשיטה ה-native שלו כלומר כמו שראינו את התצוגה הזאת אלא לתת אפשרות ל-jquery-mobile להציג את המניו הזה כמו שהוא רוצה כמו ש-jquery-mobile

  17. 08:05

    יודעת לעשות בואו נסתכל איך זה נראה נריץ את זה, נבחר ערך, ונראה כעת שזה מופיע בצורה כזאת. שימו לב שאת ה-Choose Color אני בכלל לא יכול לבחור.

  18. 08:33

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

  19. 09:05

    קודם כל אנחנו צריכים להוסיף איזשהו לחצן כזה. בואו נחזור לפה בתוך האזור של ה-content ונוסיף input type button save.

  20. 09:34

    נקרא לאיזושהי פונקציה save user values ואנחנו הולכים לכתוב אותה פה. ואיך בעצם אנחנו הולכים לעשות את זה? קודם כל אנחנו צריכים להשיג את המידע שברצוננו לשמור.

  21. 10:03

    בואו נפתח פה משתנה, נקרא לו full name. נשיג את המידע בכל מיני, אפשר לעשות את זה בכל מיני שיטות, אפשר להשתמש ב-JavaScript טהור, אפשר להשתמש ב-JQuery בשביל להשיג את זה.

  22. 10:20

    בואו נשתמש ב-JQuery. אז נלך וניקח דולר, נגיע ל-ID, יש לנו פה סולמית של התיבת טקסט txt full name, וניגש לפונקציה שנקראת val בכדי להשיג את המידע.

  23. 10:48

    ניקח את הצבע, פגישה ל-ID של צל color, נקודה val. דבר ראשון, הרבה פעמים כדאי לנו פשוט לראות מה קורה עד כאן האם באמת הצלחנו לקבל את הערכים האלה או שישנה איזושהי בעיה ואם כן לטפל בה אז הרבה פעמים כדאי פשוט לעשות alert נניח full name משורשר עם color ולראות האם מוצגים

  24. 11:28

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

  25. 11:56

    אז איך אנחנו שומרים אותם? אפשר להיפטר מהאלרט הזה. מה שאנחנו צריכים לעשות זה לגשת לאובייקט שנקרא Local Storage, פונקציה שנקראת Set Item, לתת איזשהו מפתח, המפתח הזה צריך להיות מפתח ייחודי, ואת הפריט.

  26. 12:25

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

  27. 12:56

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

  28. 13:14

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

  29. 13:26

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

  30. 13:40

    לצורך כך מה שאנחנו צריכים לעשות זה להיזכר בקונספט של ה-Device Ready שלמדנו באחד הסרטונים האחרונים. והקונספט אומר כזה דבר אנחנו צריכים לגשת לדוקימנט Add Event Listener ולהירשם לאירוע שנקרא Device Ready.

  31. 14:02

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

  32. 14:37

    storage ולהשתמש איתם איך אנחנו עושים את זה אנחנו פשוט פונים לlocal storage get item get item פונקציה מאוד פשוטה, היא אומרת לנו תביאו לי את המפתח הייחודי שנתתם עבור הפריט.

  33. 14:54

    כל פריט אנחנו נותנים מפתח ייחודי, לדוגמה full name, ואני אביא לכם את הפריט. נשים פה איזה דבר, user color, כל מה שאנחנו צריכים לעשות זה להשתמש איתם.

  34. 15:34

    לדוגמה בואו ניגש לתיבת הטקסט הזאת ונכניס בתוכה את ה-full name. בואו ניגש לתיבת ה-select הזאת ונכניס בתוכה את ה-user color.

  35. 16:19

    בואו נריץ. אוקיי, קודם כל אנחנו רואים שתיבת הטקסט עובדת כמו שצריך, התיבת Select לא, מפני שזאת לא הייתה השיטה להכניס את הערך בתוך ה-value של תיבת Select.

  36. 16:42

    אז בואו נמצא את השיטה הנכונה. אז למעשה יש כל מיני שיטות אחרות, אבל השיטה הזאת שהשתמשנו בה כרגע גם יכולה לעבוד. אנחנו הולכים ונותנים הוראה ל-JQueryMobile לרפרש את ה-Select.

  37. 17:06

    אוקיי, בואו ניתן לו את ההוראה הזאת. נגדיר לו כאן סולמית צל Color. יש לנו פה את Select Menu, רפרש. זאת הוראה של JQueryMobile וזה אמור לרפרש לנו את הנתונים ולהציג את המידע הזה.

  38. 17:29

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

  39. 17:49

    אז למעשה מה שאנחנו צריכים לעשות זה לתפוס אירוע בחירה. בואו נלך לתיבת ה-select, תפוס אירוע, בואו ניקח את onChange. נקרא לפונקציה ChangeColor, נכתוב אותה פה, קודם כל נרים בה alert רק בכדי לראות אכן הפונקציה הזאת מתבצעת כאשר אנחנו מבצעים בחירה.

  40. 18:39

    עוד פעם את זה, נשים אותו פה ליד, Go Solution Explorer, קונטרול F5,

לקורס המלא: קורס PhoneGap אונליין

ההרצאה הקודמת: זיהוי סוג חיבור של המכשיר לאינטרנט

ההרצאה הבאה: מיקום הטלפון במפה של גוגל - Geolocation

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

  • שמירת טוקן ב-Session Storage
  • S3 Storage - חלק 1
  • שמירת מידע בקובץ JSON - קורס NodeJS
  • שמירת מידע בדטה-בייס בענן - Firebase Database

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

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון