वर्कबॉक्स-बैकग्राउंड-सिंक

वेब सर्वर पर डेटा भेजते समय, कभी-कभी अनुरोध पूरे नहीं हो पाते हैं. यह उपयोगकर्ता की कनेक्टिविटी टूट जाने के कारण या ऐसा इसलिए हो सकता है क्योंकि सर्वर काम नहीं कर रहा है; हो सकता है कि किसी मामले में आप अनुरोध भेजने का प्रयास करना चाहें फिर से कोशिश करें.

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

Workbox के बैकग्राउंड सिंक को इस तरह डिज़ाइन किया गया है कि बैकग्राउंड सिंक एपीआई को डाउनलोड करें और इसके इस्तेमाल को अन्य Workbox मॉड्यूल के साथ इंटिग्रेट करें. यह यह उन ब्राउज़र के लिए एक फ़ॉलबैक स्ट्रेटजी भी लागू करता है जो अभी तक लागू नहीं हुए हैं बैकग्राउंड सिंक.

बैकग्राउंड सिंक एपीआई के साथ काम करने वाले ब्राउज़र अपने-आप फिर से चले जाएंगे आपकी ओर से किसी लिंक पर जाकर अनुरोध करता है इंटरवल को ब्राउज़र से मैनेज किया जाता है, ऐसा हो सकता है कि फिर से चलाने की कोशिशों के बीच एक्स्पोनेंशियल बैकऑफ़ इस्तेमाल हो. ऐसे ब्राउज़र जिनमें बैकग्राउंड सिंक एपीआई के साथ काम नहीं करता है, तो Workbox बैकग्राउंड सिंक की मदद से आपका सर्विस वर्कर चालू होने पर, अपने-आप फिर से चलाने की कोशिश करता है.

बुनियादी इस्तेमाल

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

import {BackgroundSyncPlugin} from 'workbox-background-sync';
import {registerRoute} from 'workbox-routing';
import {NetworkOnly} from 'workbox-strategies';

const bgSyncPlugin = new BackgroundSyncPlugin('myQueueName', {
  maxRetentionTime: 24 * 60, // Retry for max of 24 Hours (specified in minutes)
});

registerRoute(
  /\/api\/.*\/*.json/,
  new NetworkOnly({
    plugins: [bgSyncPlugin],
  }),
  'POST'
);