मैं innerHTML
संपत्ति का उपयोग DIV
गतिशील रूप से संशोधित करने के लिए कर रहा हूं, ताकि प्रक्रिया को रिपोर्ट करने के लिए कुछ सेकंड लग जाए। समस्या यह है कि फ़ायरफ़ॉक्स पर पृष्ठ को वास्तव में उस बदलाव को प्रतिबिंबित करने के लिए पुन: प्रस्तुत नहीं किया जाता है जब तक स्क्रिप्ट समाप्त नहीं हो जाती है। यह ऐप सुस्त महसूस करता है। क्या यह सुनिश्चित करने का कोई तरीका है कि HTML में परिवर्तन तुरंत दिखाई दें, भले ही अधिक स्क्रिप्ट चल रहे हों?मेरी स्क्रिप्ट कुछ भारी प्रसंस्करण कर रही है, जबकि मैं ब्राउज़र को फिर से चलाने के लिए कैसे मजबूर कर सकता हूं?
8
A
उत्तर
14
ब्राउज़र एकल धागा है। जबकि स्क्रिप्ट चल रही है, ब्राउज़र कुछ और नहीं कर सकता है। यदि आप प्रगति मीटर की तरह कुछ करना चाहते हैं, तो आपको setTimeout()
, या setInterval()
का उपयोग करना होगा, और अपने कार्य को अंतराल पर चलने वाले छोटे हिस्सों में विभाजित करना होगा। यह स्क्रिप्ट रन के बीच अंतराल छोड़ देता है, ब्राउज़र पर नियंत्रण देता है, जहां ब्राउज़र फिर से चला सकता है।
6
समय-समय पर अपनी स्क्रिप्ट को बाधित करने का प्रयास करें। आप
setTimeout(nextFunction, 0);
उपयोग करने के लिए एक लंबे समय से देरी है, जहां nextFunction समारोह है कि आपके लंबा प्रसंस्करण के साथ जारी है बिना आवश्यक रुकावट प्रदान करने के लिए सक्षम होना चाहिए।
संबंधित मुद्दे
- 1. मैं कैसे सुनिश्चित कर सकता हूं कि मेरी बैश स्क्रिप्ट पहले से चल रही नहीं है?
- 2. क्या मैं कुछ लौटने के लिए एक अमूर्त वर्ग की विधि को मजबूर कर सकता हूं?
- 3. मैं पूरे आवेदन के लिए स्थानीयकरण संस्कृति को अमेरिका में कैसे मजबूर कर सकता हूं
- 4. मैं टेक्स्ट-आधारित ब्राउज़र को कैसे लक्षित कर सकता हूं?
- 5. क्या मेरी प्रक्रिया इनपुट के लिए प्रतीक्षा कर रही है?
- 6. मैं कैसे अक्षम कर सकता हूं और फिर चेतावनी को पुनः सक्षम कर सकता हूं?
- 7. EXIF रोटेशन को अनदेखा करने के लिए मैं आईओएस सफारी को कैसे मजबूर कर सकता हूं?
- 8. मैं ब्राउज़र से स्कैनर कैसे ट्रिगर कर सकता हूं?
- 9. मैं हर ढाई घंटे कुछ कमांड चलाने के लिए क्रॉन कैसे सेट कर सकता हूं?
- 10. मैं अपने .xml संसाधन फ़ाइल को रखने के लिए प्रोगार्ड को कैसे मजबूर कर सकता हूं?
- 11. मैं डॉक्सिजन को पूर्ण रूप से दिखाने के लिए कैसे मजबूर कर सकता हूं?
- 12. क्या मैं एक सी ++ मैक्रो को फिर से परिभाषित कर सकता हूं, फिर इसे वापस परिभाषित कर सकता हूं?
- 13. मेरी वेबसाइट आईई को क्रैश कर रही है,
- 14. पर्ल के बिना मशीन पर चलाने के लिए मैं अपनी पर्ल स्क्रिप्ट को कैसे पैकेज कर सकता हूं?
- 15. मैं वर्तमान ब्राउज़र यूआरएल को ऑटोहॉटकी स्क्रिप्ट के साथ कैसे प्राप्त कर सकता हूं?
- 16. ब्राउज़र को वेबपृष्ठ के पीडीएफ संस्करण को मुद्रित करने के लिए मैं कैसे मजबूर कर सकता हूं?
- 17. मैं प्रत्येक पहलू को भरने के लिए ggplot के geom_tile को कैसे मजबूर कर सकता हूं?
- 18. वेब ऑडियो एपीआई: मैं एक ध्वनि के प्लेबैक को फिर से शुरू कैसे कर सकता हूं?
- 19. मैं सीपीएएन से स्क्रिप्ट वितरण कैसे स्थापित कर सकता हूं?
- 20. मैं कॉन्टेक्स्टमेनू को बंद करने के लिए कैसे मजबूर कर सकता हूं (WPF प्रोजेक्ट)?
- 21. फ़ायरफ़ॉक्स को शीर्षक/टूलटिप को फिर से चलाने के लिए मजबूर करने का कोई तरीका है?
- 22. मैं कुकी कैसे सेट कर सकता हूं और फिर PHP में रीडायरेक्ट कर सकता हूं?
- 23. मैं स्कैनस्क्रिप्ट निर्माता को निर्देशिका बदलने के लिए कैसे मजबूर कर सकता हूं?
- 24. मैं कमांड लाइन के लिए PHP संस्करण को कैसे मजबूर कर सकता हूं?
- 25. ब्राउज़र फिर से लोड/बैक करता है जब मैं डेटाबेस को फिर से लिखने से कैसे रोक सकता हूं?
- 26. मैं अपनी jQuery स्क्रिप्ट को कैसे सत्यापित कर सकता हूं?
- 27. मैं टेबल को ठीक से कैसे छोटा कर सकता हूं?
- 28. मेरी शक्तिशक्ति स्क्रिप्ट मेरे अपेक्षित आउटपुट से पहले '1' प्रिंट कर रही है। क्यूं कर?
- 29. मैं ब्राउज़र में वीडियो कैप्चर कैसे कर सकता हूं?
- 30. py.test परीक्षण चलाने के लिए मैं PyCharm को कैसे कॉन्फ़िगर कर सकता हूं?
ऐसा लगता है कि ब्राउज़र एकल धागा नहीं है। इसमें एक जावास्क्रिप्ट थ्रेड है लेकिन समानांतर धागा है जो पृष्ठ को प्रस्तुत करता है और डीओएम –
में हेरफेर करता है जो वास्तव में उस * ब्राउज़र पर निर्भर करता है जिस पर आप बात कर रहे हैं। कुछ लोग अब ऐसा कर सकते हैं, जैसे कि क्रोम अपने मल्टीप्रोसेस मॉडल के साथ- जहां प्रत्येक ब्राउज़र की सामग्री एक अलग प्रक्रिया होती है, और क्रोम अपनी प्रक्रिया पर भी होता है। लेकिन आप अभी भी 'while (1) 'के साथ किसी भी ब्राउज़र को आसानी से लटका सकते हैं। आप कितने ब्राउज़र को लटकाते हैं इस पर निर्भर करता है कि ब्राउजर कैसे बनाया गया है। – Breton
आप (1) {} के दौरान कॉल करके जेएस थ्रेड लटका सकते हैं, लेकिन इसका मतलब यह नहीं है कि डोम हेरफेर या सामग्री प्रतिपादन के लिए उपयोग किए जाने वाले कोई अन्य थ्रेड नहीं हैं। इसका मतलब है कि जेएस थ्रेड संभवतः अन्य धागे निष्पादन को अवरुद्ध कर सकता है। और धागे का ब्राउज़र के प्रोसेस मॉडल (प्रति पृष्ठ एक प्रक्रिया या पूरी ब्राउज़र विंडो के लिए एक प्रक्रिया) से कोई संबंध नहीं हो सकता है –