मेरे पास कई एएसपी.NET अपडेटपैनल्स हैं, प्रत्येक एक AsyncPostBackTrigger के साथ एक ही बटन के सर्वरसाइड क्लिक ईवेंट से जुड़ा हुआ है। चूंकि एक ही अपडेटपेनल एक समय में अपनी बात कर रहा है, इसलिए के का उपयोग करता है ताकि उपयोगकर्ता को पृष्ठ के किसी अन्य भाग तक पहुंचने में सक्षम होने से रोकने के लिए एसिंक पोस्टबैक पूरा हो जाए।जावास्क्रिप्ट: एक शर्त तक प्रतीक्षा करने के लिए गैर-अवरुद्ध तरीका
इस पृष्ठ के अन्य भाग को लगातार अद्यतन अपडेट पैनल अपडेट करने की आवश्यकता है। चूंकि अद्यतन पैनल एसिंक ट्रिगर्स का उपयोग करते हैं, इसलिए __doPostBack("<%=ButtonName.ClientID %>", 'PanelId');
कॉलिंग असुरक्षित रूप से आग लगती है। इस वजह से, यह लूप के अगले पुनरावृत्ति के साथ जल्दी से आगे बढ़ेगा और अगले पैनल को अपडेट करने का प्रयास करेगा। हालांकि, दूसरा पुनरावृत्ति विफल रहता है क्योंकि पहले से ही एक और अद्यतन पैनल एसिंक पोस्टबैक कर रहा है।
आदर्श रूप से, .get_isInAsyncPostBack()
तक प्रतीक्षा करने का एक तरीका होगा अन्य क्लाइंट गतिविधि को अवरुद्ध किए बिना झूठी रिटर्न।
अनुसंधान ने मुझे अपनी समस्या के साथ बहुत से लोगों के लिए नेतृत्व किया है, जिनमें से लगभग setTimeOut()
का उपयोग करने की सलाह दी जाती है। मुझे कोई बात नहीं है यह मेरे लिए काम करेगा। मैं फ़ंक्शन निष्पादित करने से पहले निर्दिष्ट समय के लिए प्रतीक्षा नहीं करना चाहता हूं। मैं बस अपनी जावास्क्रिप्ट प्रतीक्षा करना चाहता हूं जबकि एक और स्क्रिप्ट चल रही है, अधिमानतः एक विशिष्ट स्थिति सत्य होने तक प्रतीक्षा करें।
मैं समझता हूं कि कई शायद यह सुझाव देना चाहते हैं कि मैं अपने मॉडल पर पुनर्विचार करता हूं। यह वास्तव में मेरा मॉडल नहीं है, लेकिन एक जो हमारी विकास टीम को सौंप दिया गया था जो वर्तमान में हुड के नीचे कुल गड़बड़ है। समय की बाधाओं के कारण, मॉडल को फिर से लिखना एक विकल्प नहीं है। एकमात्र विकल्प यह काम करना है। मुझे लगता है कि अगर मेरे पास क्लाइंट कोड को अवरुद्ध किए बिना प्रतीक्षा करने का कोई तरीका था, तो मेरी समस्या हल हो जाएगी।
यह बस जावास्क्रिप्ट काम नहीं करता है। यह समकालिक रूप से सभी कोड निष्पादित करेगा। एचटीएमएल 5 कूल नए [वेब वर्कर्स] (https://developer.mozilla.org/en-US/docs/DOM/Using_web_workers) मदद कर सकते हैं, लेकिन बाकी के लिए आपके पास 'setTimeout'/'setInterval का उपयोग करने के अलावा कोई विकल्प नहीं होगा '। – user2428118
अच्छा सवाल। मैंने इसे दो बार लिखने की कोशिश की। – pylover