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

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

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

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

ציר הזמן

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

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

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

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

בציר הזמן מפורטות שני אבני דרך עתידיות להסרה. החל מגרסה 85 של Chrome, מטמון האפליקציה לא יהיה זמין יותר ב-Chrome כברירת מחדל. מפתחים שדרושים להם זמן נוסף כדי לצאת מ-AppCache יכולים להירשם לגרסת מקור לניסיון "היפוך" כדי להגדיל את הזמינות של AppCache לאפליקציות האינטרנט שלהם. גרסת המקור לניסיון תתחיל ב-Chrome 84 (לפני ההסרה שמוגדרת כברירת מחדל ב-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 'הפוכה' היא מיוחדת בכך שצריך לשייך אסימון לכל אחד מהמניפסטים של AppCache.

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

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

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

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

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

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

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

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

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

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

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

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

Service work ו-AppCache הם יוצאים מן הכלל

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

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

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

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

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

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

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

Safari ב-iOS וב-macOS

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

Chrome ב-iOS

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

רכיבי WebView ל-Android

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

מידע נוסף

הנה מספר משאבים למפתחים שעוברים מ-AppCache ל-Service Workers.

מאמרים

כלים

קבלת עזרה

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

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

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

תמונה ראשית (Hero) המבוססת על ארכיון המוסד של סמית'סוני, 11-007, Box 020, Image No. MNH-4477.