מתכוננים להסרה של מטמון האפליקציה

כברירת מחדל, התמיכה ב-AppCache הוסרה מ-Chrome 85. רוב המפתחים צריכים לעבור עכשיו מ-AppCache ולא להמתין יותר.

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

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

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

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

הוצאה משימוש בהקשרים לא מאובטחים Chrome 50 (אפריל 2016)
הסרה מהקשרים לא מאובטחים Chrome 70 (אוקטובר 2018)
הוצאה משימוש בהקשרים מאובטחים Chrome 79 (דצמבר 2019)
הגבלת היקף של מטמון האפליקציה Chrome 80 (פברואר 2020)
גרסת המקור לניסיון 'הפוך' מתחילה Chrome 84 (יולי 2020)
הסרה מהקשרים מאובטחים, מלבד אלה שהביעו הסכמה להשתתף בגרסת המקור לניסיון Chrome 85 (אוגוסט 2020)
הסרה מלאה מההקשרים המאובטחים לכולם, לאחר סיום תקופת הניסיון בגרסת המקור 5 באוקטובר 2021 (גרסה 95 של Chrome בערך)

גרסת מקור לניסיון

ציר הזמן כולל שני ציוני דרך קרובים של המחיקה. החל מגרסה 85 של Chrome, AppCache לא יהיה זמין יותר ב-Chrome כברירת מחדל. מפתחים שזקוקים לזמן נוסף כדי לעבור מ-AppCache יכולים להירשם לתקופת ניסיון לאחור כדי להאריך את הזמינות של AppCache לאפליקציות האינטרנט שלהם. גרסת המקור לניסיון תתחיל בגרסה 84 של Chrome (לפני הסרת ברירת המחדל מ-Chrome 85), ותמשיך להיות פעילה עד 5 באוקטובר 2021 (בסביבות Chrome 95). בשלב הזה, מטמון האפליקציה יוסר לחלוטין לכולם, גם למי שנרשם לגרסת הטרום-השקה.

כדי להשתתף בגרסת המקור לניסיון 'הפוכה':

  1. מבקשים אסימון למקור.
  2. מוסיפים את האסימון לדפי ה-HTML. יש שתי דרכים לעשות זאת:
    • מוסיפים תג origin-trial <meta> לחלק העליון של כל דף. לדוגמה: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • לחלופין, מגדירים את השרת כך שיחזיר תשובות שמכילות את כותרת ה-HTTP Origin-Trial. כותרת התשובה שמתקבלת אמורה להיראות בערך כך: Origin-Trial: TOKEN_GOES_HERE
  3. מוסיפים את אותו אסימון למניפסטים של AppCache. עושים זאת באמצעות שדה חדש במניפסט, בפורמט הבא:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(צריך להוסיף שורה חדשה בין ORIGIN-TRIAL לבין האסימון).

בהמשך מופיע פרויקט לדוגמה שמראה איך מוסיפים את האסימונים הנכונים של גרסת הטרום-השקה של המקור לקובצי index.html ו-manifest.appcache.

למה צריך אסימונים בכמה מקומות?

אסימון הניסיון מאותו מקור צריך להיות משויך ל:

  • כל דפי ה-HTML שנעשה בהם שימוש ב-Appcache.
  • כל המניפסטים של AppCache דרך שדה המניפסט ORIGIN-TRIAL.

אם השתתפתם בעבר בגרסת טרום-השקה של מקור, יכול להיות שהוספתם את האסימון רק לדפי ה-HTML שלכם. גרסת המקור לניסיון של AppCache 'reverse' היא מיוחדת כי צריך לשייך אסימון גם לכל אחד מהמניפסטים של AppCache.

הוספת אסימון הניסיון של המקור לדפי ה-HTML מאפשרת להשתמש בממשק window.applicationCache מתוך אפליקציות האינטרנט. דפים שלא משויכים לאסימון לא יוכלו להשתמש בשיטות ובאירועים של window.applicationCache. דפים ללא אסימון לא יוכלו גם לטעון משאבים מ-AppCache. החל מגרסה 85 של Chrome, הן יפעלו כאילו AppCache לא קיים.

הוספת אסימון הניסיון של המקור למניפסטים של AppCache מצביעה על כך שכל מניפסט עדיין תקף. החל מגרסה 85 של Chrome, קובצי מניפסט ללא השדה ORIGIN-TRIAL ייחשבו כקובצי מניפסט בפורמט שגוי, והכללים בקובץ המניפסט יידחו.

תזמון ולוגיסטיקה של פריסת גרסת מקור

תקופת הניסיון 'הפוכה' למקורות מתחילה באופן רשמי ב-Chrome 84, אבל אתם יכולים להירשם לתקופת הניסיון למקורות כבר היום ולהוסיף את האסימונים למניפסטים של HTML ו-AppCache. ככל שהקהל של אפליקציית האינטרנט שלכם ישדרג בהדרגה ל-Chrome 84, האסימונים שכבר הוספתם ייכנסו לתוקף.

אחרי שמוסיפים אסימון למניפסט של AppCache, צריך לעבור אל about://appcache-internals כדי לוודא שהמכונה המקומית של Chrome (גרסה 84 ואילך) שייכת לאסימון הניסיון של המקור עם הרשומות ששמורות במטמון של המניפסט. אם גרסת ה-Origin Trial מזוהה, אמור להופיע בדף שדה עם הערך Token Expires: Tue Apr 06 2021... שמשויך למניפסט:

ממשק about://appcache-internals שמוצג בו אסימון מזוהה.

בדיקה לפני ההסרה

מומלץ מאוד לבצע את המעבר מ-AppCache בהקדם האפשרי. כדי לבדוק את ההסרה של AppCache באפליקציות האינטרנט, משתמשים בדגל about://flags/#app-cache כדי לדמות את ההסרה. הדגל הזה זמין החל מ-Chrome 84.

אסטרטגיות העברה

קובצי שירות (service workers), שיש להם תמיכה רחבה בדפדפנים הנוכחיים, הם חלופה לחוויית השימוש אופליין שמספקת מטמון האפליקציה.

סיפקנו polyfill שמשתמש ב-service worker כדי לשכפל חלק מהפונקציונליות של AppCache, אבל הוא לא משכפל את כל ממשק AppCache. באופן ספציפי, הוא לא מספק תחליף לממשק window.applicationCache או לאירועי AppCache שקשורים אליו.

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

קובצי שירות (service worker) ו-AppCache הם בלעדיים

במהלך העבודה על אסטרטגיית ההעברה, חשוב לזכור ש-Chrome ישבית את הפונקציונליות של Appcache בכל דף שנטען בשליטה של Service Worker. במילים אחרות, ברגע שמפרסים קובץ שירות ששולט בדף נתון, אי אפשר יותר להשתמש ב-AppCache בדף הזה.

לכן, מומלץ לא לנסות לעבור ל-Service Workers בהדרגה. זוהי טעות לפרוס שירות-משתמש שמכיל רק חלק מהלוגיקה של האחסון במטמון. אי אפשר להשתמש ב-AppCache כדי "למלא את הפערים".

באופן דומה, אם פורסים שירות עבודה לפני הסרת AppCache, ואז מגלים שצריך לחזור לגרסה הקודמת של AppCache, צריך לוודא שמבטלים את הרישום של שירות העבודה הזה. כל עוד יש קובץ שירות (service worker) רשום שנכלל בדף נתון, לא ייעשה שימוש ב-AppCache.

הסיפור של הפלטפורמות השונות

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

Firefox בכל הפלטפורמות

ב-Firefox הוצאו משימוש את AppCache בגרסה 44 (ספטמבר 2015), והוסרה התמיכה בו בגרסאות הבטא וה-Nightly החל מספטמבר 2019.

Safari ב-iOS וב-macOS

בתחילת 2018, מטמון האפליקציה הווצא משימוש ב-Safari.

Chrome ב-iOS

Chrome ל-iOS הוא מקרה מיוחד, כי הוא משתמש במנוע דפדפן שונה מזה של Chrome בפלטפורמות אחרות: WKWebView. כרגע אין תמיכה ב-Service Workers באפליקציות ל-iOS שמשתמשות ב-WKWebView, וההודעה של Chrome על הסרת AppCache לא כוללת את הזמינות של AppCache ב-Chrome ל-iOS. חשוב לזכור את זה אם אתם יודעים שלאפליקציית האינטרנט שלכם יש קהל משמעותי ב-Chrome ל-iOS.

Android WebViews

חלק מהמפתחים של אפליקציות ל-Android משתמשים ב-WebView ל-Chrome כדי להציג תוכן מהאינטרנט, ויכול להיות שהם גם משתמשים במטמון האפליקציה. עם זאת, אי אפשר להפעיל תקופת ניסיון למקור ב-WebView. לאור זאת, WebView של Chrome יתמוך ב-AppCache ללא ניסיון מקור עד להסרה הסופית, שצפויה להתרחש ב-Chrome 90.

מידע נוסף

ריכזנו כאן כמה מקורות מידע למפתחים שעוברים מ-AppCache ל-Service Workers.

מאמרים

כלים

קבלת עזרה

אם נתקלת בבעיה בשימוש בכלי ספציפי, אפשר לפתוח פנייה בקשר לבעיה במאגר של הכלי ב-GitHub.

אפשר לשאול שאלה כללית על העברה מ-AppCache ב-Stack Overflow באמצעות התג html5-appcache.

אם נתקלתם בבאג שקשור להסרת AppCache מ-Chrome, דווחו עליו באמצעות הכלי למעקב אחרי בעיות ב-Chromium.

התמונה הראשית (Hero) מבוססת על Smithsonian Institution Archives, Acc. 11-007, Box 020, Image No. MNH-4477.