में चलते समय धीमी गति से दो बार दौड़ते हैं मेरे पास एक वेबपैप है जो सेटटाइमआउट का उपयोग करके फ़ेड इन/आउट संक्रमणों के साथ ऑडियो चलाता है। यह अच्छी तरह से ज्ञात है कि क्रोम और अन्य ब्राउज़र एक निष्क्रिय (या पृष्ठभूमि) टैब में चलने पर सेटटाइमआउट निष्पादन को थ्रॉटल करते हैं। इसलिए इस समस्या को हल करने के लिए, मैं इस स्क्रिप्ट का उपयोग करता हूं (https://github.com/turuslan/HackTimer) जो कि वेब वर्कर्स का उपयोग करने के लिए टाइमर एपीआई को पैच करता है। यह वॉल्यूम फ़ेडिंग संक्रमण को पृष्ठभूमि में चलाने की अनुमति देता है ताकि टैब को सक्रिय होने पर भी उन्हें हमेशा एक ही समय में निष्पादित और पूरा किया जा सके। यह क्रोम में बहुत अच्छा काम करता था, लेकिन अब मैंने देखा है कि क्रोम के संस्करण 54 (और शायद पहले संस्करण) में, वेब वर्कर्स को निष्क्रिय टैब में चलते समय धीमे से दो बार निष्पादित किया जा रहा है। यह समस्या नहीं होती है और फ़ायरफ़ॉक्स और यहां तक कि IE11 के साथ पूरी तरह से काम करता है!क्रोम v54 में वेब वर्कर्स एक निष्क्रिय टैब
क्या यह क्रोम बग है? या यह इरादा व्यवहार है? क्या इस मुद्दे पर कोई अन्य कामकाज है? मैं यह नहीं चाहता कि वेबपैप को एक अलग विंडो में खोला जाए, ताकि यह कोई विकल्प न हो।
यहाँ एक प्रदर्शन है: https://jsfiddle.net/2614xsj8/1/
// Open Chrome console and run this then wait a few seconds to see
// it is executing on time. Then open or switch to a new tab and wait
// a few seconds. Come back to see how much slower the setTimeout
// function was being called even when using HackTimer which patches
// the Timer API to use Web Workers
var rate = 1000;
var start = new Date().getTime();
var func = function() {
var now = new Date().getTime();
var time = now - start;
var status = Math.abs(rate - time) <= 50 ? "on time" : (time/rate) + " times slower";
console.log("executed in [" + time + "] milliseconds. " + status);
start = now;
setTimeout(func, rate);
};
setTimeout(func, rate);
<script src="https://cdn.rawgit.com/turuslan/HackTimer/master/HackTimer.js" type="text/javascript"></script>
आप [ऑडियो एपीआई] का उपयोग माना जाता है (https://www.html5rocks.com (ताकि आपकी साइट एक वैध SSL प्रमाणपत्र की जरूरत है)/en/ट्यूटोरियल/WebAudio/परिचय /)? समय बहुत अधिक दानेदार है और मुझे नहीं लगता कि यह टैब स्विचिंग से प्रभावित है। मेरे पास एक समान समस्या थी [यहां] (http://stackoverflow.com/q/27162254/677526)। –
@ jedd.ahyoung मैं प्लेबैक के लिए ऑडियो एपीआई का उपयोग कर रहा हूं और इस तरह, लेकिन समय के लिए इसका उपयोग करने पर विचार नहीं किया। मैं यह देखने के लिए अपनी समय क्षमताओं को देखूंगा कि फीका इन/आउट संक्रमण प्राप्त करने के लिए प्रत्येक कुछ मिलीसेकंड को बढ़ाने/घटाने के लिए उपयुक्त होगा या नहीं। –