עדכון גרסה חדשה ב SPA בצד הלקוח (VUE)
-
יש לי ממשק מבוסס vue על גבי תבנית על bootstrap-vue
צורך העבודה שלי עד היום, הפיתוח נעשה במחשב האישי, ומפעם לפעם יצירת build ואז העלאת תיקיית dist לשרת.
הממשק נטען בשלימותו בעת הטעינה וכל הניתובים וכו' הם ללא טעינה מחדש אלא ניתובים פנימיים עם הראוטר של vue.
מה שגורם שייתכן שהמשתמש לא ירענן את הדף מזך זמן רב ולא יתעדכנו לו גרסאות חדשות (משא"כ PHP וכדומה שמעובדים בצד שרת שבכל ניתוב ודפדוף הוא כבר מתעדכן לגרסה החדשה)
מהי הדרך הלגיטימית לכפיית רענון בצד לקוח בעת גרסה חדשה?
מה שאני חשבתי, משהו בסגנון שמירת מספר הגרסה במיקום מסויים בדף (והצגתו למשתמש), ובכל גרסה חדשה אני מעלה אותו (איך עושים שזה יעלה אוטומטי בעת build?), ובצד הלקוח יבוצע רענון מול צד השרת כל משך זמן מסויים (באיזה קומפוננט מומלץ לשלב זאת? ב app.veu הראשי?)
ובעת גרסה חדשה תופיע התראה או יתרענן אוטומטי.
אשמח לדעת מהי הדרך הלגיטימית לעשות זאת? -
יש פה כתבה יפה בנושא.
https://dev.to/originalexe/can-you-please-refresh-or-how-we-version-our-single-page-application-335l@חוקר אמר בעדכון גרסה חדשה ב SPA בצד הלקוח (VUE):
מהי הדרך הלגיטימית לכפיית רענון בצד לקוח בעת גרסה חדשה?
מסקנת הכתבה שהבאתי הוא לא לכפות רענון אלא לבקש יפה.
@חוקר אמר בעדכון גרסה חדשה ב SPA בצד הלקוח (VUE):
שמירת מספר הגרסה במיקום מסויים בדף (והצגתו למשתמש), ובכל גרסה חדשה אני מעלה אותו (איך עושים שזה יעלה אוטומטי בעת build?),
עיי"ש בכתבה שאין צורך, אפשר פשוט לבצע fetch ל-index.html ולהשוות לנוכחי. בכל עדכון יש האש שונה והקבצים לא יהיו זהים.
יש שם קוד מלא. לא בדקתי את הקוד, אבל חזקה וכו'
-
@ש-ב-ח אמר בעדכון גרסה חדשה ב SPA בצד הלקוח (VUE):
מה שאני עשיתי
בכל גישה לשרת (גם לקבלת jsonים בלבד)
החזרתי כותרת של האש גירסהברגע שבצד הלקוח זיהיתי שינוי מהקודם עדכנתי את הלקוח עם התראה פשוטה בצד המסך ש"קיימת גירסה חדשה לחץ כאן לריענון הדף" (כמובן שבלחיצה הפעלתי location.reload(true))
בהצלחה
איך אתה שומר בפעם הראשונה את האש של הגרסה? הרי האתר עצמו הוא סטטי?
אתה עושה בדיקה ראשונית בכל קריאת api שאם הערך ריק אתה שומר אותו ורק בפעם הבאה אתה משווה?