के तहत धीमा हो गया है मैंने एक स्क्रिप्ट बनाई है जो तत्व के पृष्ठभूमि रंग को फीका करती है। मैं प्रत्येक 5 एमएस रंग में वृद्धिशील परिवर्तन करने के लिए setTimeout() का उपयोग करता हूं। स्क्रिप्ट बहुत अच्छा काम करती है अगर मैं एक समय में एक चीज के पृष्ठभूमि रंग को लुप्त कर रहा हूं, लेकिन अगर मुझे मिल गया है, तो कहें, 50 तत्व मैं सभी एक बार में लुप्त हो रहा हूं, गति 5 एमएस से बहुत धीमी है समवर्ती सेटटाइमआउट() एक बार में चल रहा है। एक फीका जो आम तौर पर 1 सेकंड में निष्पादित होनी चाहिए, उदाहरण के लिए, अगर मैं 50 तत्वों को एक बार में लुप्त कर रहा हूं तो 30 सेकंड लग सकते हैं।जावास्क्रिप्ट सेटटाइमआउट() भारी लोड
कोई विचार मैं इसे कैसे दूर कर सकता हूं?
यहाँ मामला किसी में स्क्रिप्ट एक उपाय हैं है:
function fadeBackground(elementId, start, end, time) {
var iterations = Math.round(time/5);
var step = new Array(3);
step[0] = (end[0] - start[0])/iterations;
step[1] = (end[1] - start[1])/iterations;
step[2] = (end[2] - start[2])/iterations;
stepFade(elementId, start, step, end, iterations);
}
function stepFade(elementId, cur, step, end, iterationsLeft) {
iterationsLeft--;
document.getElementById(elementId).style.backgroundColor
= "rgb(" + cur[0] + "," + cur[1] + "," + cur[2] + ")";
cur[0] = Math.round(end[0] - step[0] * iterationsLeft);
cur[1] = Math.round(end[1] - step[1] * iterationsLeft);
cur[2] = Math.round(end[2] - step[2] * iterationsLeft);
if (iterationsLeft > 1) {
setTimeout(function() {
stepFade(elementId, cur, step, end, iterationsLeft);
}, 5);
}
else {
document.getElementById(elementId).style.backgroundColor
= "rgb(" + end[0] + "," + end[1] + "," + end[2] + ")";
}
}
यह इस तरह किया जाता है:
fadeBackground("myList", [98,180,232], [255,255,255], 1000);
मैं सोच रहा था कि एक टाइमर जाने का रास्ता हो सकता है, लेकिन मैं परिवर्तन को लागू करने के लिए होने का डर था। :) मैंने वास्तव में अपना खुद का रोल करने का फैसला किया क्योंकि मैं एनिमेट करने के लिए jQuery का उपयोग कर रहा था() और यह वास्तव में लगभग 10% फीका विफल रहा। दुर्भाग्यवश, यह एक अस्वीकार्य त्रुटि दर है। मैं लेख देखूँगा। बहुत धन्यवाद! – core
हे। स्टैकओवरफ्लो में "समस्या को एनिमेट करने में विफल" समस्या भी है। – Nosredna