मेरे पास काफी लंबा चल रहा है (3 से 10 सेकेंड) फ़ंक्शन जो पृष्ठ के काफी कम इस्तेमाल किए गए हिस्से के लिए पृष्ठभूमि में डेटा लोड करता है। मेरे पास सवाल यह है कि निष्पादन के लिए इष्टतम चलने का समय और यह सुनिश्चित करने के लिए देरी का समय क्या है कि शेष पृष्ठ काफी इंटरैक्टिव रहता है, लेकिन डेटा को लोड करने से इसे तोड़ने में अत्यधिक देरी नहीं होती है?उत्तरदायी यूआई के लिए लंबे समय तक चलने वाले फ़ंक्शन को उप-विभाजित करने के लिए कितना?
उदाहरण के लिए:
var i = 0;
var chunkSize = 10;
var timeout = 1;
var data; //some array
var bigFunction = function() {
var nextStop = chunkSize + i; //find next stop
if (nextStop > data.length) { nextStop = data.length }
for (; i < nextStop; i++) {
doSomethingWithData(data[i]);
}
if (i == data.length) { setTimeout(finalizingFunction, timeout); }
else { setTimeout(bigFunction , timeoutLengthInMs); }
};
bigFunction(); //start it all off
अब, मैं कुछ परीक्षण किया है, और एक chunkSize
कि एक 100ms निष्पादन समय के बारे में पैदावार और एक 1ms timeout
एक सुंदर उत्तरदायी यूआई उपज के लिए लग रहे हैं, लेकिन कुछ उदाहरण मैं मैंने देखा है कि बहुत बड़े भाग (~ 300 एमएमएस) और लंबे समय तक (20 से 100 एमएस) की सिफारिश करें। क्या मुझे अपने काम को बहुत कम हिस्सों में काटने में कुछ खतरे याद आ रही हैं, या इन नंबरों को निर्धारित करने के लिए परीक्षण और त्रुटि सुरक्षित तरीका है?
आपको पता है कि किया जा रहा है जावास्क्रिप्ट (क्लाइंट-साइड) सीपीयू, स्मृति, मशीन कनेक्शन के नेटवर्क कनेक्शन, आदि में काफी हद तक। –
@ जेसन मैकक्रीरी, ज़ाहिर है। यही कारण है कि मैं इस सवाल से पूछ रहा हूं और यह नहीं मानता कि इन नंबरों को निर्धारित करने का मेरा परीक्षण और त्रुटि विधि सुरक्षित है। – jball