से एचटीएमएल दस्तावेज़ के लिए कर्सर प्रकार बदलें मान लें कि मेरे पास जावास्क्रिप्ट विधि है जो बिना किसी उपयोगकर्ता प्रतिक्रिया के जाने के लिए थोड़ी देर तक ले जाती है। मेरे मामले में यह पंक्ति तत्व में पंक्तियों को क्रमबद्ध कर रहा है (सभी डोम में; केवल बहुत पंक्तियों में होने पर बहुत लंबा समय लगता है), लेकिन यह कुछ भी कर सकता है। मैं इसे चलाने के दौरान "प्रगति" कर्सर दिखाना चाहता हूं। यहां मेरे पास वर्तमान में है, लेकिन मैंने कई अन्य चीजों की भी कोशिश की है:जावास्क्रिप्ट
// SORT
document.body.style.cursor = "progress";
MyLongRunningMethod(); //blocks for 10-15 seconds before returning
document.body.style.cursor = "auto";
दुर्भाग्यवश, कुछ भी नहीं होता है। MyLongRunningMethod() क्या यह सही बात है, लेकिन कर्सर कभी नहीं बदलता है। मेरा विचार यह है कि ब्राउज़र को विंडोिंग वातावरण द्वारा उत्पन्न कर्सर परिवर्तन संदेश को संभालने में सक्षम होने के लिए वापस आने के तरीके की प्रतीक्षा करने की आवश्यकता है, लेकिन यह संभव हो सकता है और यहां तक कि यदि यह सच है तो मुझे नहीं पता कि इसे कैसे ठीक किया जाए।
कोई अन्य विचार?
[संपादित करें]: मैंने तय किया कि मेरी पिछली कहानी वास्तव में आवश्यक नहीं थी। यदि आप वास्तव में इसे पढ़ना चाहते हैं तो संशोधन इतिहास की जांच करें।
अंतिम परिणाम
मैं RoBorg के समाधान का उपयोग कर समाप्त हो गया। यह कोड को गड़बड़ नहीं करता जितना मैं मूल रूप से सोच रहा था, क्योंकि मैं वहां फ़ंक्शन घोषित कर सकता हूं- यह एक इनलाइन स्कोप ब्लॉक जोड़ने जैसा है।
दिलचस्प बात यह है कि फ़ायरफ़ॉक्स पर मैंने पाया कि इसका मतलब है कि मुझे कर्सर को बिल्कुल बदलने की आवश्यकता नहीं है। मैंने पाया कि सेटटाइम कॉल को जोड़ने के बाद मुझे कभी-कभी प्रगति कर्सर सेट होने से पहले एक प्रतीक्षा कर्सर दिखाई देता था, इसलिए मैंने अपने कर्सर कोड पर टिप्पणी की। यह पता चला है कि क्लिक इवेंट हैंडलर से इसे धक्का देने के लिए सेटटाइमआउट का उपयोग करने में कुछ फ़ायरफ़ॉक्स स्वयं को इस पर पता लगाने की अनुमति देता है कि कर्सर बदलना चाहिए। दुर्भाग्यवश, आईई स्मार्ट नहीं है इसलिए मैंने कर्सर कोड को वापस रखा था।
यह मेरी धारणा को विश्वास देता है कि कर्सर परिवर्तन — पर उचित कार्रवाई है, यह अवसर दिया गया है कि ब्राउज़र वैसे भी करेगा। मैं वास्तव में उस पृष्ठ के लिए डीओएम में नए आइटम (जैसे किसी प्रकार की व्यस्त छवि की तरह) को जोड़ना और निकालना नहीं चाहता हूं, जिसके बारे में मुझे बहुत कम पता है। स्क्रिप्ट को मेल खाना चाहिए इससे कोई फर्क नहीं पड़ता कि पेज किस विज़ुअल डिज़ाइन का उपयोग करता है।
अंत में, क्रोम पूरी चीज को अप्रासंगिक बनाता है। उसी डेटा का उपयोग करके, क्रोम 5 सेकंड से भी कम समय में करता है जो आईई और फ़ायरफ़ॉक्स को 10 से 15 सेकंड तक पूरा करता है। तो उनका जावास्क्रिप्ट इंजन वास्तव में तेज़ है। मैं फ़ायरफ़ॉक्स 3.1 इंजन की प्रतीक्षा नहीं कर सकता। दुर्भाग्य से यहां लोग अभी भी ज्यादातर आईई 6 का उपयोग कर रहे हैं।
सर्वर एसिंक्रोनस रूप से फोन SortTable करता है? – kristina
नहीं, यह सब क्लाइंट पर डीओएम के साथ करता है। –
दूसरे शब्दों में: यह पूरा होने तक ब्लॉक करता है। मैं इसे फायरबग में देख सकता हूं। –