חשוב לבחור את מנגנוני האחסון המתאימים, גם לאחסון מקומי במכשיר וגם לאחסון שרת מבוסס-ענן. מנוע אחסון טוב מבטיח שהמידע שלכם נשמר בצורה מהימנה, מפחית את רוחב הפס ומשפר את המהירות של התגובה. אסטרטגיית האחסון המתאימה במטמון היא אבן בניין מרכזית ליצירת חוויות שימוש אופליין באינטרנט לנייד.
במאמר הזה נספק סקירה כללית קצרה שתעזור לכם להעריך את ממשקי ה-API והשירותים של האחסון. לאחר מכן נספק טבלת השוואה והנחיות כלליות. בעתיד הקרוב אנחנו מתכננים להוסיף מקורות מידע שיעזרו לכם להבין לעומק נושאים נבחרים שקשורים לאחסון.
מערכת קטגוריות של אחסון
נתחיל בהסבר על כמה מהמאפיינים שבאמצעותם אפשר לנתח את אחסון הנתונים של אפליקציות אינטרנט. בהמשך נשתמש במסגרת הזו כדי למנות ולהעריך את אפשרויות האחסון הרבות שזמינות למפתחי אתרים.
מודל נתונים
המודל לאחסון יחידות נתונים קובע את אופן הארגון הפנימי של הנתונים, ומשפיע על קלות השימוש, עלות וביצועי הבקשות לאחסון ולאחזור.
מובְנים: נתונים שמאוחסנים בטבלאות עם שדות מוגדרים מראש, כמו במערכות ניהול מסדי נתונים מבוססות-SQL, מתאימים לשאילתות גמישות ודינמיות, שבהן יכול להיות שהטווח המלא של סוגי השאילתות לא ידוע מראש. דוגמה בולטת למאגר נתונים מובנה בדפדפן היא IndexedDB.
מפתח/ערך: מאגרי נתונים מסוג מפתח/ערך ומסדי נתונים קשורים מסוג NoSQL מאפשרים לאחסן ולשלוף נתונים לא מובְנים שנוספו לאינדקס באמצעות מפתח ייחודי. מאגרי נתונים מסוג מפתח/ערך דומים לטבלאות גיבוב (hash) בכך שהם מאפשרים גישה בזמן קבוע לנתונים אטומים שנוספו לאינדקס. דוגמאות בולטות למאגרי נתונים מסוג מפתח/ערך הן Cache API בדפדפן ו-Apache Cassandra בשרת.
זרמי בייטים: המודל הפשוט הזה מאחסן נתונים כמחרוזת אטומה של בייטים באורך משתנה, ומותיר כל סוג של ארגון פנימי לשכבת האפליקציה. המודל הזה מתאים במיוחד למערכות קבצים ולקבוצות נתונים אחרות שמאורגנות באופן היררכי. דוגמאות בולטות למאגרי נתונים של זרמי בייטים כוללות מערכות קבצים ושירותי אחסון בענן.
התמדה
אפשר לנתח שיטות אחסון של אפליקציות אינטרנט לפי ההיקף שבו הנתונים נשמרים.
עמידות בסשן: הנתונים בקטגוריה הזו נשמרים רק כל עוד סשן אינטרנט יחיד או כרטיסייה אחת בדפדפן נשארים פעילים. דוגמה למנגנון אחסון עם עמידות בסשנים היא Session Storage API.
שימור במכשיר: הנתונים בקטגוריה הזו נשמרים במהלך סשנים ובכרטיסיות או בחלונות של הדפדפן במכשיר מסוים. דוגמה למנגנון אחסון עם עקביות במכשיר היא Cache API.
שמירה גלובלית: הנתונים בקטגוריה הזו נשמרים בין סשנים ומכשירים. לכן, זוהי הדרך החזקה ביותר לשמירת נתונים. דוגמה למנגנון אחסון עם עקביות גלובלית היא Google Cloud Storage.
תמיכה בדפדפנים
מפתחים צריכים לבחור ממשק API שמתאים ביותר לדומיין הבעיה שלהם. עם זאת, הם צריכים גם להביא בחשבון שממשקי API סטנדרטיים ומוכרים עדיפים על ממשקים מותאמים אישית או קנייניים, כי הם נוטים להיות בשימוש לטווח ארוך יותר ויש להם תמיכה רחבה יותר. הם גם יכולים ליהנות מבסיס ידע רחב יותר ומסביבה עסקית עשירה יותר למפתחים.
עסקאות
לעיתים קרובות חשוב שקבוצה של פעולות אחסון קשורות תצליח או תיכשל באופן אטומי. מערכות ניהול מסדי נתונים תומכות בתכונה הזו באופן מסורתי באמצעות מודל הטרנזקציה, שבו עדכונים קשורים יכולים להיות מקובצים ליחידות שרירותיות. האפשרות הזו לא תמיד נחוצה, אבל היא נוחה ולפעמים חיונית בתחומים מסוימים של בעיות.
סנכרון/אסינכרון
חלק מממשקי ה-API לאחסון הם סינכרוניים במובן הזה שבקשות אחסון או אחזור חוסמות את השרשור הפעיל הנוכחי עד שהבקשה תושלם. הבעיה הזו קשה במיוחד בדפדפני אינטרנט, שבהם בקשת האחסון משתפת את ה-thread הראשי עם ממשק המשתמש. מטעמי יעילות וביצועים, מומלץ להשתמש בממשקי API לאחסון אסינכרוני.
ניפוי באגים של אחסון ב-Chrome DevTools
במאמרים הבאים מוסבר איך משתמשים בכלי הפיתוח ל-Chrome כדי לבדוק ולפתור באגים בממשק ה-API לבחירתכם לאחסון באינטרנט. ממשקי API שלא מוזכרים כאן לא נתמכים ב-DevTools או לא רלוונטיים.
אם אתם משתמשים בכמה ממשקי API לאחסון, כדאי לבדוק את התכונה Clear Storage ב-DevTools. התכונה הזו מאפשרת למחוק כמה חנויות בלחיצה אחת על הלחצן. למידע נוסף, ראו ניקוי שירותי עובדים, אחסון, מסדי נתונים ומטמון.
לאן ממשיכים מכאן…
אחרי שבדקנו כמה מהדרכים הרלוונטיות לחשוב על מנגנוני אחסון והשווינו בין ממשקי ה-API והשירותים הפופולריים ביותר שזמינים היום, בקרוב נוסיף תוכן נוסף כדי להעמיק בנושא אחד או יותר שעשויים לעניין אתכם: