मुझे समस्या है कि सेवा पंजीकृत करने के बाद Navigator.serviceWorker.controller हमेशा शून्य है। मैं कभी भी ताज़ा ताज़ा नहीं करता हूं और पेज को रीफ्रेश करता हूं। मैं इसे Google क्रोम 42.0.2311.152 मीटर (32-बिट) के साथ परीक्षण करता हूं।navigator.serviceWorker.controller हमेशा शून्य है
var currentServiceWorker = null;
navigator.serviceWorker.register(SERVICE_WORKER_URL).then(function(serviceWorkerRegistration {
if (navigator.serviceWorker.controller) {
currentServiceWorker = navigator.serviceWorker.controller;
} else {
currentServiceWorker = serviceWorkerRegistration.active;
}
});
इस के अनुसार:
नियंत्रक केवल पढ़ने के लिए ServiceWorkerContainer इंटरफ़ेस में प्रॉपर्टी एक ServiceWorker वस्तु अगर अपने राज्य सक्रिय होता है (एक ही वस्तु ServiceWorkerRegistration.active द्वारा दिया) देता है। यह अनुरोध शून्य हो जाता है अगर अनुरोध एक ताज़ा ताज़ा करें (Shift + refresh) या यदि कोई सक्रिय कार्यकर्ता नहीं है। (स्रोत: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/controller)
navigator.serviceWorker.controller
serviceWorkerRegistration.active
रूप में एक ही ऑब्जेक्ट प्रदान। लेकिन .active
के साथ मुझे सक्रिय कार्यकर्ता मिल गया है, .controller
नहीं।
क्या आपके पास उस स्थिति के लिए कोई विचार है?
धन्यवाद, Andi
यह एक महाकाव्य pitfall है, मुझे विश्वास है कि यह बेहतर दस्तावेज होना चाहिए - कम से कम कुछ स्पष्ट त्रुटि संदेश अच्छा होगा। धन्यवाद! – shabunc
@shabunc ने समस्या हल की, मुझे नियंत्रक में शून्य मिल गया। –