बैकग्राउंड की सेवाओं को डीबग करना

Sofia Emelianova
Sofia Emelianova

Chrome DevTools के बैकग्राउंड सेवाओं वाले सेक्शन में, JavaScript API के लिए टूल का कलेक्शन है. इसकी मदद से, किसी उपयोगकर्ता के बंद होने पर भी आपकी वेबसाइट से अपडेट भेजे और पाए जा सकते हैं. बैकग्राउंड में चलने वाली सेवा, काफ़ी हद तक बैकग्राउंड में चलने वाली प्रोसेस जैसी ही है.

बैकग्राउंड सेवाएं सेक्शन की मदद से, बैकग्राउंड में चलने वाली इन सेवाओं को डीबग किया जा सकता है:

Chrome DevTools तीन दिनों तक फ़ेच, सिंक, और सूचना से जुड़े इवेंट लॉग कर सकता है. ऐसा तब भी किया जा सकता है, जब DevTools खुला न हो. इससे आपको यह पक्का करने में मदद मिलती है कि इवेंट उम्मीद के मुताबिक भेजे और पाए जा रहे हैं.

बैकग्राउंड में चलने वाली सेवा से जुड़े इवेंट के अलावा, DevTools ये काम भी कर सकता है:

बैकग्राउंड फ़ेच

बैकग्राउंड फ़ेच एपीआई किसी सर्विस वर्कर को बैकग्राउंड में चलने वाली सेवा के तौर पर, फ़िल्मों या पॉडकास्ट जैसे बड़े संसाधनों को सही तरीके से डाउनलोड करने की सुविधा देता है. DevTools खुले न होने पर भी, बैकग्राउंड फ़ेच इवेंट को तीन दिनों तक लॉग करने के लिए:

  1. उदाहरण के लिए, इस डेमो पेज पर, DevTools खोलें.
  2. ऐप्लिकेशन > बैकग्राउंड सेवाएं > बैकग्राउंड फ़ेच पर जाएं और रिकॉर्ड करना. रिकॉर्ड करें पर क्लिक करें.

    बैकग्राउंड फ़ेच करने वाला पैनल.

  3. डेमो पेज पर, ऐसेट को स्थानीय तौर पर स्टोर करें पर क्लिक करें. इससे, बैकग्राउंड में डेटा फ़ेच करने की कुछ गतिविधियां ट्रिगर होती हैं. DevTools, इवेंट को टेबल में लॉग करता है.

    बैकग्राउंड के फ़ेच पैनल में इवेंट का लॉग.

  4. टेबल के नीचे स्पेस में किसी इवेंट की जानकारी देखने के लिए, उस इवेंट पर क्लिक करें.

  5. DevTools बंद करके, रिकॉर्डिंग को तीन दिनों तक के लिए चालू रखा जा सकता है. रिकॉर्डिंग रोकने के लिए, वीडियो बंद करने के लिए. बंद करें पर क्लिक करें.

पृष्ठभूमि समन्वयन

बैकग्राउंड सिंक एपीआई भरोसेमंद इंटरनेट कनेक्शन वापस पाने के बाद, ऑफ़लाइन सर्विस वर्कर को सर्वर पर डेटा भेजने की सुविधा देता है. DevTools खुले न होने पर भी, तीन दिनों तक बैकग्राउंड सिंक इवेंट लॉग करने के लिए:

  1. उदाहरण के लिए, इस डेमो पेज पर, DevTools खोलें.
  2. ऐप्लिकेशन > बैकग्राउंड सेवाएं > बैकग्राउंड सिंक पर जाएं और रिकॉर्ड करना. रिकॉर्ड करें पर क्लिक करें.

    बैकग्राउंड सिंक पैनल.

  3. डेमो पेज पर, संबंधित सर्विस वर्कर को रजिस्टर करने के लिए, बैकग्राउंड सिंक रजिस्टर करें पर क्लिक करें और निर्देश मिलने पर अनुमति दें पर क्लिक करें.

    सर्विस वर्कर रजिस्ट्रेशन, बैकग्राउंड सिंक की गतिविधि है. DevTools, इवेंट को टेबल में लॉग करता है.

    बैकग्राउंड सिंक पैनल में इवेंट का लॉग.

  4. टेबल के नीचे स्पेस में किसी इवेंट की जानकारी देखने के लिए, उस इवेंट पर क्लिक करें.

  5. DevTools बंद करके, रिकॉर्डिंग को तीन दिनों तक के लिए चालू रखा जा सकता है. रिकॉर्डिंग रोकने के लिए, वीडियो बंद करने के लिए. बंद करें पर क्लिक करें.

(एक्सपेरिमेंट के लिए) बाउंस ट्रैकिंग की क्षमता को कंट्रोल करना

Chrome में बाउंस ट्रैकिंग की क्षमता से जुड़े प्रयोग की मदद से, बाउंस ट्रैकिंग तकनीक का इस्तेमाल करके, क्रॉस-साइट ट्रैकिंग करने वाली साइटों की पहचान करके उन्हें मिटाया जा सकता है. ट्रैकिंग खतरों को मैन्युअल तरीके से लागू किया जा सकता है. साथ ही, उन साइटों की सूची देखी जा सकती है जिनका स्टेटस मिटा दिया गया है.

निगरानी करने की क्षमता को कम करने के लिए:

  1. Chrome में, तीसरे पक्ष की कुकी ब्लॉक करें. तीन बिंदु वाला मेन्यू. > सेटिंग > सुरक्षा. निजता और सुरक्षा > कुकी और साइट का अन्य डेटा > रेडियो बटन चुना गया. तीसरे पक्ष की कुकी ब्लॉक करें पर जाएं और इसे चालू करें.
  2. chrome://flags में, बाउंस ट्रैकिंग की क्षमता के प्रयोग को मिटाने की सुविधा के साथ चालू किया गया पर सेट करें.
  3. उदाहरण के लिए, डेमो पेज पर, DevTools खोलें. इसके बाद, ऐप्लिकेशन > बैकग्राउंड सेवाएं > बाउंस ट्रैकिंग की पाबंदियां पर जाएं.
  4. डेमो पेज पर, बाउंस लिंक पर क्लिक करें. इसके बाद, 10 सेकंड तक इंतज़ार करें, ताकि Chrome बाउंस को रिकॉर्ड कर सके. समस्याएं टैब में आपको चेतावनी दी जाती है कि आने वाले समय में क्या स्टेटस मिट जाएगा.
  5. स्टेटस को तुरंत मिटाने के लिए, ज़बरदस्ती चलाएं पर क्लिक करें.

बाउंस ट्रैकिंग की क्षमता को कंट्रोल करने के दौरान, स्टेटस मिट जाता है.

सूचनाएं

किसी सर्विस वर्कर को सर्वर से पुश मैसेज मिलने के बाद, सर्विस वर्कर किसी उपयोगकर्ता को डेटा दिखाने के लिए सूचनाएं एपीआई का इस्तेमाल करता है. DevTools खुले न होने पर भी, तीन दिनों तक सूचनाएं लॉग करने के लिए:

  1. उदाहरण के लिए, इस डेमो पेज पर, DevTools खोलें.
  2. ऐप्लिकेशन > बैकग्राउंड सेवाएं > सूचनाएं पर जाएं और रिकॉर्ड करना. रिकॉर्ड करें पर क्लिक करें.

    सूचना पैनल.

  3. डेमो पेज पर, निर्देश मिलने पर सूचना शेड्यूल करें और अनुमति दें पर क्लिक करें.

  4. नोटिफ़िकेशन के दिखाई देने की इंतज़ार करें. DevTools सूचना से जुड़े इवेंट को टेबल में लॉग करता है.

    सूचना पैनल में इवेंट का लॉग.

  5. टेबल के नीचे स्पेस में किसी इवेंट की जानकारी देखने के लिए, उस इवेंट पर क्लिक करें.

  6. DevTools बंद करके, रिकॉर्डिंग को तीन दिनों तक के लिए चालू रखा जा सकता है. रिकॉर्डिंग रोकने के लिए, वीडियो बंद करने के लिए. बंद करें पर क्लिक करें.

अनुमान के हिसाब से लोड हुए यूआरएल

अनुमानित लोड की मदद से, तय किए गए अनुमान के नियमों के आधार पर, पेज को तुरंत लोड किया जा सकता है. इससे आपकी वेबसाइट को उन पेजों को प्रीफ़ेच और प्रीरेंडर करने की सुविधा मिलती है जिन पर सबसे ज़्यादा नेविगेट किया गया है.

प्रीफ़ेच की मदद से, किसी संसाधन को पहले ही फ़ेच कर लिया जाता है. साथ ही, पेज को पहले से रेंडर करने की प्रोसेस, बैकग्राउंड में रेंडर करने की छिपी हुई प्रोसेस में पूरे पेज को रेंडर करती है.

ऐप्लिकेशन > बैकग्राउंड सेवाएं > अनुमानित लोड सेक्शन में, अनुमान के हिसाब से लोड हुए यूआरएल को डीबग किया जा सकता है. इस सेक्शन में तीन व्यू होते हैं:

  • अनुमान के हिसाब से लोड हुए यूआरएल. इसमें मौजूदा पेज के लिए, अनुमान के हिसाब से लगाए गए स्टेटस, मौजूदा यूआरएल, वे पेज जिन्हें मौजूदा पेज अनुमान के हिसाब से लोड करने की कोशिश करता है, और उनकी स्थितियां शामिल होती हैं.
  • नियम. इसमें, एलिमेंट पैनल में मौजूदा पेज के नियम के सेट और अनुमान का पूरा स्टेटस शामिल होता है.
  • अनुमान. इसमें एक टेबल होती है, जिसमें अनुमान के हिसाब से यूआरएल लोड होने की कोशिशों और उनके स्टेटस के बारे में जानकारी होती है. अगर कोई कोशिश नाकामयाब होती है, तो ज़्यादा जानकारी और सफल न होने की वजह देखने के लिए, टेबल में उस पर क्लिक किया जा सकता है.

इस डेमो पेज पर, अनुमान के हिसाब से लोड हुए यूआरएल को डीबग करने की कोशिश करें:

  1. पेज पर मौजूद DevTools खोलें. इसके बाद, ऐप्लिकेशन > बैकग्राउंड सेवाएं > अनुमानित लोड पर जाएं. अगर आपको पेज से, अनुमान के हिसाब से लोड होने वाला कोई पेज नहीं दिखता है, तो उसे फिर से लोड करें.

    इस पेज के हिसाब से, लोड किए गए यूआरएल में दो सफल और एक गड़बड़ी शामिल थी.

  2. डेमो का शुरुआती पेज दो पेजों को पहले से रेंडर करता है, लेकिन एक पेज को पहले से रेंडर नहीं कर पाता. सभी अनुमान देखें पर क्लिक करें.

  3. अनुमान सेक्शन में, पुष्टि न हो पाने की स्थिति के हिसाब से अनुमान चुनें. इससे आपको पुष्टि न होने की वजह सेक्शन में, पूरी जानकारी दिखेगी.

    जो अनुमान नहीं लगाए जा सके उसे चुना गया.

    इस मामले में, वेबसाइट पर कोई /next3.html पेज मौजूद नहीं होने की वजह से, प्रीरेंडरिंग नहीं हो सकी.

  4. नियम सेक्शन खोलें और सबसे नीचे मौजूद नियम को देखने के लिए, स्थिति पर क्लिक करें. नियम सेट लिंक पर क्लिक करने से, आपको एलिमेंट पैनल पर ले जाया जाता है. साथ ही, यह दिखाया जाता है कि अनुमान का नियम कहां तय किया गया है.

    'नियम' सेक्शन का लिंक, जिसमें नियम सेट का लिंक है.

सिलसिलेवार तरीके से दिए गए निर्देशों के बारे में ज़्यादा जानने के लिए, अनुमान लगाने के नियम डीबग करना देखें.

पुश मैसेज सेवा

किसी उपयोगकर्ता को पुश नोटिफ़िकेशन दिखाने के लिए, सर्विस वर्कर को सर्वर से डेटा पाने के लिए, सबसे पहले पुश मैसेज एपीआई का इस्तेमाल करना होगा. जब सर्विस वर्कर, सूचना दिखाने के लिए तैयार होता है, तब वह Notifications API का इस्तेमाल करता है. DevTool के खुले न होने पर भी तीन दिन तक पुश मैसेज लॉग करने के लिए:

  1. उदाहरण के लिए, इस डेमो पेज पर, DevTools खोलें.
  2. ऐप्लिकेशन > बैकग्राउंड सेवाएं > पुश मैसेज पर जाएं और रिकॉर्ड करना. रिकॉर्ड करें पर क्लिक करें.

    पुश मैसेज वाला पैनल.

  3. डेमो पेज पर, पुश नोटिफ़िकेशन चालू करें को टॉगल करें. निर्देश मिलने पर अनुमति दें पर क्लिक करें. इसके बाद, कोई मैसेज टाइप करें और उसे भेजें. DevTools लॉग, टेबल में पुश नोटिफ़िकेशन इवेंट करता है.

    पुश मैसेज सेवा पैनल में इवेंट का लॉग.

  4. टेबल के नीचे स्पेस में किसी इवेंट की जानकारी देखने के लिए, उस इवेंट पर क्लिक करें.

  5. DevTools बंद करके, रिकॉर्डिंग को तीन दिनों तक के लिए चालू रखा जा सकता है. रिकॉर्डिंग रोकने के लिए, वीडियो बंद करने के लिए. बंद करें पर क्लिक करें.

रिपोर्टिंग एपीआई

कुछ गड़बड़ियां सिर्फ़ प्रोडक्शन में होती हैं. आपको डिवाइस पर या डेवलपमेंट के दौरान वे कभी नहीं दिखते, क्योंकि असल उपयोगकर्ता, नेटवर्क, और डिवाइस गेम बदलते रहते हैं.

उदाहरण के लिए, मान लें कि आपकी नई साइट तीसरे पक्ष के सॉफ़्टवेयर पर काम करती है, जो ज़रूरी स्क्रिप्ट लोड करने के लिए document.write() का इस्तेमाल करता है. दुनिया भर में नए उपयोगकर्ता आपकी साइट खोलते हैं, लेकिन हो सकता है कि उनके कनेक्शन धीमे हो जाएं. आप नहीं जानते कि आपकी साइट उनके लिए टूटना शुरू कर देती है, क्योंकि Chrome धीमे नेटवर्क पर document.write() के ख़िलाफ़ दखल देता है. इसके अलावा, आपके पास ऐसे एपीआई पर नज़र रखने का विकल्प है जो अब काम नहीं करते या जल्द ही बंद होने वाले हैं. आपके कोडबेस का इस्तेमाल शायद जल्द ही किया जा रहा हो.

Reporting API को बंद किए जा चुके एपीआई कॉल, आपके पेज की सुरक्षा से जुड़े उल्लंघनों वगैरह पर नज़र रखने में आपकी मदद करने के लिए डिज़ाइन किया गया है. आपके पास रिपोर्टिंग एपीआई की मदद से अपने वेब ऐप्लिकेशन की निगरानी करना में बताए गए तरीके से रिपोर्टिंग की सुविधा सेट अप करने का विकल्प है.

किसी पेज से जनरेट हुई रिपोर्ट देखने के लिए:

  1. chrome://flags/#enable-experimental-web-platform-features पर जाएं और एक्सपेरिमेंट के तौर पर उपलब्ध वेब प्लैटफ़ॉर्म की सुविधाओं को चालू है पर सेट करें. इसके बाद, Chrome को रीस्टार्ट करें.
  2. DevTools खोलें और ऐप्लिकेशन > बैकग्राउंड सेवाएं > रिपोर्टिंग एपीआई पर जाएं. उदाहरण के लिए, इस डेमो पेज पर रिपोर्ट देखी जा सकती हैं.

    Reporting API में शामिल रिपोर्ट

Reporting API टैब को तीन हिस्सों में बांटा गया है:

  • रिपोर्ट टेबल में, हर रिपोर्ट के बारे में यह जानकारी होती है:
    • यूआरएल जिसकी वजह से रिपोर्ट जनरेट हुई
    • उल्लंघन टाइप
    • रिपोर्ट की स्थिति
    • डेस्टिनेशन एंडपॉइंट
    • टाइमस्टैंप पर जनरेट किया गया
    • रिपोर्ट का मुख्य हिस्सा
  • रिपोर्ट के मुख्य हिस्से की झलक वाला सेक्शन. किसी रिपोर्ट के मुख्य हिस्से की झलक देखने के लिए, रिपोर्ट की टेबल में मौजूद किसी रिपोर्ट पर क्लिक करें.
  • Reporting-Endpoints हेडर में कॉन्फ़िगर किए गए सभी एंडपॉइंट की खास जानकारी वाला एंडपॉइंट सेक्शन.

शिकायत की स्थिति

स्थिति कॉलम से आपको यह पता चलता है कि Chrome ने रिपोर्ट भेज दी है, इसे भेजने वाला है या नहीं.

स्थिति ब्यौरा
Success ब्राउज़र ने रिपोर्ट भेज दी है और एंडपॉइंट ने सक्सेस कोड (200 या दूसरा सक्सेस रिस्पॉन्स कोड 2xx) के साथ जवाब दिया है.
Pending ब्राउज़र, रिपोर्ट भेजने की कोशिश कर रहा है.
Queued रिपोर्ट जनरेट हो गई है और ब्राउज़र इसे अब भी भेजने की कोशिश नहीं कर रहा है. रिपोर्ट, इन दोनों में से किसी एक मामले में Queued के तौर पर दिखती है:
  • यह रिपोर्ट नई है और ब्राउज़र यह पता लगाने का इंतज़ार कर रहा है कि और रिपोर्ट मिलती हैं या नहीं. इसके बाद, उसे भेजने की कोशिश की जाती है.
  • यह रिपोर्ट नई नहीं है. ब्राउज़र ने इस रिपोर्ट को भेजने की पहले ही कोशिश की है. हालांकि, वह प्रोसेस नहीं कर सका और दोबारा कोशिश करने से पहले इंतज़ार कर रहा है.
MarkedForRemoval कुछ समय तक फिर से कोशिश करने के बाद (Queued), ब्राउज़र ने रिपोर्ट भेजने की कोशिश करना बंद कर दिया है और जल्द ही उसे भेजी जाने वाली रिपोर्ट की सूची से हटा दिया जाएगा.

रिपोर्ट कुछ समय बाद निकाल दी जाती हैं, भले ही वे सफलतापूर्वक भेजी गई हों या नहीं.