इस समय, सर्विस वर्कर टेढ़े-मेढ़े लग सकते हैं. कई जटिल इंटरैक्शन होते हैं जिनका सही जवाब देना मुश्किल होता है. नेटवर्क के अनुरोध! डेटा कैश करने की रणनीतियां! कैश मैनेजमेंट! पहले से सेव किया जा रहा है! बहुत सी बातें याद रखना. यह सर्विस वर्कर को गलत तरीके से डिज़ाइन की गई टेक्नोलॉजी नहीं बनाता है. यह उम्मीद के मुताबिक काम करता है और मुश्किल समस्याओं को हल करता है.
अच्छे ऐब्स्ट्रैक्टेशन से, जटिल एपीआई को इस्तेमाल करना आसान हो जाता है. ऐसे में, वर्कबॉक्स की ज़रूरत पड़ती है. वर्कबॉक्स, मॉड्यूल का एक सेट है, जो सामान्य सर्विस वर्कर रूटिंग और कैशिंग को आसान बनाता है. हर उपलब्ध मॉड्यूल सर्विस वर्कर डेवलपमेंट के किसी खास पहलू को पूरा करता है. वर्कबॉक्स का मकसद, सर्विस वर्कर के इस्तेमाल को जितना हो सके उतना आसान बनाना है. साथ ही, ऐप्लिकेशन की ज़रूरत के हिसाब से ज़रूरतों को पूरा करने की सुविधा देना भी है.
सबसे आसान मामलों में,
workbox-build
कुछ ऐसे तरीके देता है जिनसे सर्विस वर्कर को जनरेट किया जा सकता है. यह किसी खास एसेट को पहले से कैश मेमोरी में सेव करता है.
generateSW
तरीका ज़्यादातर काम खुद से कर लेता है.
वहीं, injectManifest
तरीका ज़रूरत पड़ने पर ज़्यादा कंट्रोल देता है.
बेहतर इस्तेमाल के लिए, दूसरे मॉड्यूल आपकी मदद कर सकते हैं. ऐसे कुछ मॉड्यूल हैं:
- मैच करने के अनुरोध के लिए
workbox-routing
. - कैश मेमोरी में सेव करने की रणनीतियों के लिए
workbox-strategies
. - पहले से कैश मेमोरी में सेव करने के लिए,
workbox-precaching
. - कैश मेमोरी मैनेज करने के लिए
workbox-expiration
. window context
में सर्विस वर्कर को रजिस्टर करने और अपडेट मैनेज करने के लिएworkbox-window
.
ये और अन्य मॉड्यूल सर्विस वर्कर कोड को डिक्लेरेटिव टोन में लिखने में मदद करते हैं. सर्विस वर्कर एपीआई को सीधे इस्तेमाल करने के बजाय, इस तरीके से पढ़ना और उसका रखरखाव करना आसान होता है. इस दस्तावेज़ में बताया गया है कि लागू किए गए तरीके में उनका इस्तेमाल कैसे किया जाए.