שירותי רקע לניפוי באגים

Kayce Basques
Kayce Basques
Sofia Emelianova
Sofia Emelianova

הקטע Background services בכלי הפיתוח ל-Chrome הוא אוסף של כלים לממשקי ה-API של JavaScript שמאפשרים לאתר שלכם לשלוח ולקבל עדכונים גם כשהמשתמש לא פותח את האתר. שירות ברקע דומה מבחינה פונקציונלית לתהליך ברקע.

בקטע שירותים הפועלים ברקע אפשר לנפות באגים בשירותים הבאים שפועלים ברקע:

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

בנוסף לאירועים של שירותים ברקע, כלי הפיתוח יכולים:

אחזור ברקע

Background Fetch API מאפשר ל-service worker להוריד באופן מהימן משאבים גדולים, כמו סרטים או פודקאסטים, כשירות ברקע. כדי לרשום ביומן אירועים של אחזור נתונים ברקע למשך שלושה ימים, גם כשכלי הפיתוח לא פתוחים:

  1. פותחים את כלי הפיתוח, למשל בדף ההדגמה הזה.
  2. עוברים אל Application (אפליקציה) > Background services (שירותי רקע) > Background fetch (אחזור ברקע) ולוחצים על הקלטה. Record (תיעוד).

    החלונית 'אחזור ברקע'.

  3. בדף ההדגמה, לוחצים על Store assets locally (שמירת נכסים באופן מקומי). הפעולה הזו מפעילה פעילות מסוימת של אחזור ברקע. כלי הפיתוח מתעדים את האירועים בטבלה.

    יומן האירועים בחלונית 'טעינת נתונים ברקע'.

  4. כדי לראות את הפרטים של אירוע מסוים, לוחצים עליו בטבלה.

  5. אפשר לסגור את כלי הפיתוח ולהשאיר את ההקלטה פועלת למשך שלושה ימים לכל היותר. כדי לעצור את ההקלטה, לוחצים על תפסיק. עצירה.

סינכרון ברקע

Background Sync API מאפשר ל-service worker אופליין לשלוח נתונים לשרת אחרי שהוא חידש חיבור אינטרנט אמין. כדי לתעד אירועי סנכרון ברקע למשך שלושה ימים, גם כשכלי הפיתוח לא פתוחים:

  1. פותחים את כלי הפיתוח, למשל בדף ההדגמה הזה.
  2. עוברים אל Application (אפליקציה) > Background services (שירותי רקע) > Background sync (סנכרון ברקע) ולוחצים על הקלטה. Record (תיעוד).

    החלונית 'סנכרון ברקע'.

  3. בדף ההדגמה, לוחצים על Register background sync (רישום סנכרון ברקע) כדי לרשום את ה-service worker המתאים, ואז לוחצים על Allow (אישור) כשמוצגת בקשה.

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

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

  4. כדי לראות את הפרטים של אירוע מסוים, לוחצים עליו בטבלה.

  5. אפשר לסגור את כלי הפיתוח ולהשאיר את ההקלטה פועלת למשך שלושה ימים לכל היותר. כדי לעצור את ההקלטה, לוחצים על תפסיק. עצירה.

(ניסיוני) הקלות במעקב אחר עזיבה מהדף הראשון

הניסוי Bounce tracking mitigations ב-Chrome מאפשר לזהות ולמחוק את הנתונים של אתרים שנראה שמבצעים מעקב באתרים שונים באמצעות הטכניקה של מעקב אחר ניתוב מחדש. אתם יכולים להפעיל באופן ידני אמצעים לצמצום מעקב ולראות רשימה של אתרים שהמצבים שלהם נמחקו.

כדי לכפות הקלות במעקב:

  1. חסימת קובצי Cookie של צד שלישי ב-Chrome. עוברים אל תפריט שלוש הנקודות. > הגדרות > אבטחה. פרטיות ואבטחה > קובצי Cookie ונתונים נוספים מאתרים > כפתור הבחירה מסומן. חסימת קובצי Cookie של צד שלישי ומפעילים את האפשרות.
  2. ב-chrome://flags, מגדירים את הניסוי Bounce tracking mitigations (הקלות במעקב אחר עזיבה מהדף הראשון) למצב Enabled With Deletion (מופעל עם מחיקה).
  3. פותחים את כלי הפיתוח, למשל בדף ההדגמה, ועוברים אל Application (אפליקציה) > Background services (שירותי רקע) > Bounce tracking mitigations (אמצעים לצמצום מעקב אחר החזרות).
  4. בדף ההדגמה, לוחצים על קישור להפניה אוטומטית ומחכים (10 שניות) עד ש-Chrome יקליט את ההפניה האוטומטית. בכרטיסייה בעיות מוצגת אזהרה לגבי מחיקת המצב הקרובה.
  5. לוחצים על הפעלה מאולצת כדי למחוק את הסטטוס באופן מיידי.

ההקלות במעקב אחרי הפניה אוטומטית מפרטות מחיקה של מצב.

התראות

אחרי שservice worker מקבל הודעת Push משרת, הוא משתמש ב-Notifications API כדי להציג את הנתונים למשתמש. כדי לרשום ביומן את ההתראות למשך שלושה ימים, גם כשכלי הפיתוח לא פתוחים:

  1. פותחים את כלי הפיתוח, למשל בדף ההדגמה הזה.
  2. עוברים אל Application > Background services > Notifications ולוחצים על הקלטה. Record.

    חלונית ההתראות.

  3. בדף ההדגמה, לוחצים על תזמון התראה ואז על אישור כשמופיעה ההודעה.

  4. מחכים שההתראה תופיע. כלי הפיתוח רושמים את אירועי ההתראות בטבלה.

    יומן אירועים בחלונית ההתראות.

  5. כדי לראות את הפרטים של אירוע מסוים, לוחצים עליו בטבלה.

  6. אפשר לסגור את כלי הפיתוח ולהשאיר את ההקלטה פועלת למשך שלושה ימים לכל היותר. כדי לעצור את ההקלטה, לוחצים על תפסיק. עצירה.

טעינות ספקולטיביות

טעינות ספקולטיביות מאפשרות טעינת דף כמעט מיידית על סמך כללי ספקולציה שאתם מגדירים. כך האתר יכול לבצע אחזור מראש וטרום-עיבוד של רוב הדפים שאליהם המשתמשים מנווטים.

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

אפשר לנפות באגים בטעינות ספקולטיביות בקטע Application (אפליקציה) > Background services (שירותי רקע) > Speculative loads (טעינות ספקולטיביות). הקטע הזה כולל שלוש תצוגות:

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

כדאי לנסות לנפות באגים בטעינות מראש בדף ההדגמה הזה של טעינה מראש:

  1. פותחים את כלי הפיתוח בדף ועוברים אל Application (אפליקציה) > Background services (שירותי רקע) > Speculative loads (טעינות ספקולטיביות). אם לא רואים טעינות ספקולטיביות שהופעלו על ידי הדף, צריך לטעון אותו מחדש.

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

  2. דף הפתיחה של ההדגמה מבצע עיבוד מראש של שני דפים, ולא מצליח לבצע עיבוד מראש של דף אחד. לוחצים על הצגת כל הטעינות שמבוצעות מראש.

  3. בקטע Speculations, בוחרים את הספקולציה עם הסטטוס Failure כדי לראות את Failure reason בקטע עם מידע מפורט בתחתית.

    הספקולציה שנכשלה נבחרה.

    במקרה הזה, העיבוד מראש נכשל כי אין דף /next3.html באתר.

  4. פותחים את הקטע כללים ולוחצים על סטטוס כדי לראות את קבוצת הכללים בתחתית. לחיצה על הקישור Rule set (קבוצת כללים) מעבירה אתכם לחלונית Elements (רכיבים) ומראה לכם איפה מוגדר כלל הניחוש.

    הקטע Rules (כללים) עם הקישור לקבוצת הכללים.

הוראות מפורטות יותר זמינות במאמר בנושא ניפוי באגים בכללי ניחוש.

העברת הודעות Push

כדי להציג למשתמש הודעת פוש, סוכן שירות צריך קודם להשתמש ב-API של Push Message כדי לקבל נתונים משרת. כש-Service Worker מוכן להציג את ההתראה, הוא משתמש ב-API של התראות. כדי לרשום הודעות פוש במשך שלושה ימים, גם כשכלי הפיתוח לא פתוחים:

  1. פותחים את כלי הפיתוח, למשל בדף ההדגמה הזה.
  2. עוברים אל Application (אפליקציה) > Background services (שירותים ברקע) > Push Messaging (הודעות פוש) ולוחצים על הקלטה. Record (תיעוד).

    החלונית 'העברת הודעות Push'.

  3. בדף ההדגמה, מעבירים את המתג Enable push notifications (הפעלת התראות פוש), לוחצים על Allow (אישור) כשמופיעה ההודעה, מקלידים הודעה ושולחים אותה. כלי הפיתוח רושמים בטבלה את האירועים של ההתראות בדחיפה.

    יומן של אירועים בחלונית Push Messaging.

  4. כדי לראות את הפרטים של אירוע מסוים, לוחצים עליו בטבלה.

  5. אפשר לסגור את כלי הפיתוח ולהשאיר את ההקלטה פועלת למשך שלושה ימים לכל היותר. כדי לעצור את ההקלטה, לוחצים על תפסיק. עצירה.

Reporting API

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

לדוגמה, נניח שהאתר החדש שלכם מסתמך על תוכנה של צד שלישי שמשתמשת ב-document.write() כדי לטעון סקריפטים קריטיים. משתמשים חדשים בכל העולם פותחים את האתר שלכם, אבל יכול להיות שהחיבורים שלהם איטיים יותר מאלה שבדקתם. בלי שתדעו, האתר שלכם מתחיל להפסיק לפעול אצלם כי Chrome מתערב נגד document.write() ברשתות איטיות. לחלופין, כדאי לעקוב אחרי ממשקי API שהוצאו משימוש או שיוצאו משימוש בקרוב, שאולי נעשה בהם שימוש בבסיס הקוד שלכם.

Reporting API נועד לעזור לכם לעקוב אחרי קריאות ל-API שהוצאו משימוש, הפרות אבטחה בדף ועוד. אפשר להגדיר דיווח כמו שמתואר במאמר מעקב אחרי אפליקציית אינטרנט באמצעות Reporting API.

כדי לראות את הדוחות שנוצרו על ידי דף:

  1. עוברים אל chrome://flags/#enable-experimental-web-platform-features, מגדירים את האפשרות Experimental Web Platform features (תכונות ניסיוניות של פלטפורמת האינטרנט) לEnabled (מופעל) ומפעילים מחדש את Chrome.
  2. פותחים את כלי הפיתוח ועוברים אל Application (אפליקציה) > Background services (שירותים ברקע) > Reporting API (Reporting API). לדוגמה, אפשר לעיין בדוחות בדף ההדגמה הזה.

    דוחות שמופיעים ב-Reporting API

הכרטיסייה Reporting API מחולקת לשלושה חלקים:

  • טבלת דוחות עם הפרטים הבאים על כל דוח:
    • כתובת ה-URL שגרמה ליצירת הדוח
    • סוג ההפרה
    • סטטוס הדוח
    • נקודת קצה של יעד
    • חותמת הזמן Generated at
    • דיווח על גוף
  • קטע התצוגה המקדימה של גוף הדוח. כדי לראות תצוגה מקדימה של גוף הדוח, לוחצים על דוח בטבלת הדוחות.
  • הקטע Endpoints (נקודות קצה) עם סקירה כללית של כל נקודות הקצה שהוגדרו בכותרת Reporting-Endpoints.

סטטוס הדוח

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

סטטוס תיאור
Success הדפדפן שלח את הדוח ונקודת הקצה הגיבה עם קוד הצלחה (200 או קוד תגובה אחר של הצלחה 2xx).
Pending הדפדפן מנסה לשלוח את הדוח.
Queued הדוח נוצר והדפדפן עדיין לא מנסה לשלוח אותו. דוח מופיע כ-Queued באחד משני המקרים הבאים:
  • הדוח חדש והדפדפן ממתין לראות אם יגיעו עוד דוחות לפני שינסה לשלוח אותו.
  • הדוח לא חדש. הדפדפן כבר ניסה לשלוח את הדוח הזה ונכשל, והוא ממתין לפני שהוא מנסה שוב.
MarkedForRemoval אחרי כמה ניסיונות חוזרים (Queued), הדפדפן הפסיק לנסות לשלוח את הדוח ובקרוב הוא יוסר מרשימת הדוחות לשליחה.

דוחות מוסרים אחרי זמן מה, בין אם הם נשלחו בהצלחה ובין אם לא.