הוספה, עדכון ומחיקה בפלטפורמות SPA
-
בס"ד
אני עובד כרגע עם angular, אך שאלתי מכוונת לכל הפלטפורמות שנותנות מענה ל SPA
ניקח דוגמא(תיאורטית):
יש לי רשימת לקוחות שבכל אחד מהם מופיע : שם כתובת עיר טלפון וכו',
ויש כפתור לעריכה > בעת עריכה נפתח חלון דיאלוג ובו אני משנה את הכתובת והעיר, ובסיום אני לוחץ על שומר והחלון נסגר.
עכשיו אני רוצה ליראות את השינויים באותו לקוח, ברשימה.
בעיקרון: אפשר לקרוא לservice לקחת מחדש את הרשימה של הלקוחות ולעדכן את המשתנה שמכיל את הרשימה הזו.
ואז בעצם אני יראה שכל הרשימה מתרעננת,- האם זה מכביד משמעותי, על האפליקציה?
- ומה קורה בכל פעם שמשתמש אחר מעדכן(איך להתעדכן בזה זה כבר נושא אחר- אבל על החלק של העדכון ברשימת הלקוחות הקיימת) - האם פתאום כל הרשימה תתרענן לי?
ומצד שני עושה רושם בכל מיני אתרים שרק הרשומה שבה נעשית שינוי מתעדכנת, נמחקת או מתווספת,
- בשביל לעשות כזה דבר, זה לא כאבי ראש? - כל פעולה CURD לעשות סינון ולעדכן או להוסיף במיקום כל שהוא, או סנן למחוק וכו'.
- יש ספריות מוכנות לזה?
-
@avi-rz אתה מתכוון SPA (single page application).
אני תמיד הייתי מקפיד מאוד לעדכן רק את הפרטי ששונה, וגם עדכון זה נעשה ללא כל בקשת אינטרנט כי אני כבר "יודע" איזה פריט שונה ולמה הוא שונה, או נמחק או התווסף וכו'.
(אתה מתאר service ועושה רושם שזה נראה לך מסובך אבל פה אתה מאוד ספציפי לאנגולר שאינני מכיר).
עד שהכרתי מערכת בה בכל מקום פשוט טענו מחדש את הנתונים כמו בטעינת הדף הראשונית.
אני בהתחלה ממש התנגדתי לבזבוז המשווע (בקשה מיותרת, ועוד לעיתים על הרבה פריטים),
אך מאוחר יותר שמתי לב שבדרך זו התחזקוה והקידוד קלים יותר (ויש עוד הרבה דברים דומים כאלה בעיקר בצד לקוח)
א. יש פונקציה/מקום אחד לטעינת נתונים, רק קוראים לה שוב מתי שנדרש.
ב. אין שום צורך לכתוב קוד מותאם בכל סוג של פעולה, לעדכון נכון וספציפי לתצוגות, שזה במילים אחרות קוד מלוכלך.אתה שואל עד כמה זה בזבוז? בד"כ הרבה פחות בזבוז מדף אינטרנט רגיל שכל עדכון זה ריענון מלא.
צריך לדאוג שהבקשות לא יהיו גדולות מידי, אם מדובר במאות פריטים להגביל את זה וכדומה. -
@dovid אמר בהוספה, עדכון ומחיקה בפלטפורמות SPA:
וגם עדכון זה נעשה ללא כל בקשת אינטרנט כי אני כבר "יודע" איזה פריט שונה ולמה הוא שונה, או נמחק או התווסף וכו'.
הרבה פעמים זה נצרך לדעת שזה אכן התעדכן בדטה בייס ולא אירע שגיאה בדרך כגון שהמידע לא נכתב נכון.
-
@ב-ל אמר בהוספה, עדכון ומחיקה בפלטפורמות SPA:
@dovid אמר בהוספה, עדכון ומחיקה בפלטפורמות SPA:
וגם עדכון זה נעשה ללא כל בקשת אינטרנט כי אני כבר "יודע" איזה פריט שונה ולמה הוא שונה, או נמחק או התווסף וכו'.
הרבה פעמים זה נצרך לדעת שזה אכן התעדכן בדטה בייס ולא אירע שגיאה בדרך כגון שהמידע לא נכתב נכון.
מובן מדבריך שחוצמזה
גם נראה לך כנ"ל.
עריכה: כהאפשרות השניה של כן לעדכן רק את הלקוח הספציפי.
אם כשאני מעדכן או מוסיף, אני מקבל את אותו לקוח בחזרה מהשרת כשהוא כבר מעודכן. זה בסדר. -
@avi-rz
כך לימדוני:
מכיון שאתה זה ששלחת את המידע,
אתה אומר לחכות לתשובה מהשרת שהמידע עודכן בהצלחה.
ואז לעדכן את המידע בפרונט (במערך הלקוחות)
מכיון שעדכנת את המערך, הכל יהיה מעודכן מכאן והלאה
בלי להביא שוב מידע מהשרת.עריכה:
עובר שוב בעיון על תגובתו של @dovid ומבין שלדבריו, כן נכון לעשות קריאה חוזרת ולהשתמש בתהליך הקבוע, במקום לבנות תהליך ספציפי שיעדכן את המערך וירענן את התצוגות. -
@avi-rz אמר בהוספה, עדכון ומחיקה בפלטפורמות SPA:
ומה קורה בכל פעם שמשתמש אחר מעדכן(איך להתעדכן בזה זה כבר נושא אחר- אבל על החלק של העדכון ברשימת הלקוחות הקיימת) - האם פתאום כל הרשימה תתרענן לי?
מה באמת הפתרון לזה?
לשני הצדדים שנידונו כאן, ריענון מלא או עדכון חלקי, עדיין זה רק כאשר הגולש כאן ביצע שינויים, אך הוא יתעדכן כאשר גולש אחר ביצע שינויים? -
@חוקר אמר בהוספה, עדכון ומחיקה בפלטפורמות SPA:
מה באמת הפתרון לזה?
לשני הצדדים שנידונו כאן, ריענון מלא או עדכון חלקי, עדיין זה רק כאשר הגולש כאן ביצע שינויים, אך הוא יתעדכן כאשר גולש אחר ביצע שינויים?זו שאלה לכל מערכת,
(שאז לרוב או שהנתונים מובאים מחדש ברענון, או כל x דקות, או שזו מערכת זמן-אמת [עם סוקט וכו'])