2011-04-18 10 views
7

जावास्क्रिप्ट से मैं एक वेब विधि फोन कर रहा हूँ। IE के साथ, अगर मैं यह है कि वेब विधि करने के लिए एक बहुत बड़ा पैरामीटर पास, एक चेतावनी "इस sciprt चल रहा है? इस पृष्ठ पर एक स्क्रिप्ट इंटरनेट एक्सप्लोरर धीमे चल खड़ी कर रहा है बंद करो" दिखाई नहीं देता।कैसे संभाल करने के लिए चेतावनी "इस पृष्ठ पर एक स्क्रिप्ट इंटरनेट एक्सप्लोरर धीमे चल खड़ी कर रहा है?"

क्या "हां" बटन पर क्लिक को संभालना संभव है, ताकि उपयोगकर्ता स्क्रिप्ट निष्पादन को रद्द करने का निर्णय लेता है, तो मैं कुछ वैकल्पिक स्क्रिप्ट चला सकता हूं (इस मामले में, मेरी "वैकल्पिक" स्क्रिप्ट में कुछ प्रगति बंद होती है बार मैं लंबे समय तक स्क्रिप्ट चलाने से पहले पॉपअप)।

मैंने कई चेतावनियों को दिखाया है कि इस चेतावनी को प्रदर्शित होने से कैसे रोकें, लेकिन मैं चेतावनी को प्रदर्शित होने से नहीं रोकना चाहता हूं: मैं बस उस मामले को संभालने में सक्षम होना चाहता हूं जिसमें उपयोगकर्ता रुकने का फैसला करता है स्क्रिप्ट निष्पादन।

+1

आप एक अलग समारोह जो समय समय पर जांच करता है कि काम वास्तव में जारी रखा जाए या नहीं – JohnP

+0

मानक जे एस आप वास्तव में नहीं कर सका में है हो सकता है; काम इतना है कि अलग समारोह के बाद पहले से किया जाता है जब तक नहीं चला होगा, जो बहुत देर हो चुकी होगी, एक एकल पिरोया फैशन में तुल्यकालिक किया जाता है। –

उत्तर

4

मैंने पहले एक आंतरिक एप्लिकेशन जहां वे परवाह नहीं है कि कब तक यह संख्याओं का उपयोग करना ब्राउज़र ले लिया पर इस के साथ पेश किया है, वे तो बस शीघ्र क्लिक करने के लिए नहीं चाहता था। (

function doWork(begin, end) { 
    // Some chunk of what your worker function normally does from begin to end 

    if (actualEnd < end) // Nothing left to do 
     clearInterval(Interval); 
} 

var Interval = setInterval(doWork, 15); 

यह प्रदर्शित होने से आईई शीघ्र रोकता है या:

कुंजी (CPU समय के मामले में उम्मीद के मुताबिक) काम नीचे कार्य की उम्मीद के मुताबिक टुकड़ों में तोड़ने के लिए और की तरह एक setInterval पर उन्हें चलाने के लिए है क्रोम "फ्रीज" संवाद पेश करने से)। अगला चरण कुछ कोड जोड़ना है जो उपयोगकर्ता को इसे पूरी तरह से छोड़ने देता है; अगर काम की मात्रा शुरुआत में जानी जाती है, तो तुरंत उनसे पूछें। यदि नहीं, तो प्रसंस्करण शुरू करें और एन चंक्स के बाद उनसे पूछें कि क्या वे सस्ता कार्य करना चाहते हैं।

  1. कितना काम वहाँ किया जा रहा है के रूप में आगे देखें, और अगर यह एक बहुत कुछ है, (सर्वर के लिए इसे पारित इस दुर्भाग्य का मतलब:

    वहाँ इतना कार्य को पूरा करने के लिए 2 अन्य विकल्प हैं सर्वर पर फिर से अपना जेएस लिखना; बेशक, आप एक सर्वर इंजन का उपयोग कर सकते हैं जो स्वयं को कुछ कोडिंग सहेजने के लिए जावास्क्रिप्ट चलाता है)।

  2. Google गियर्स का/एचटीएमएल 5
  3. से पृष्ठभूमि का उपयोग करें श्रमिकों

अंत में, यदि आप मांग पर इतना काम कर रहे हैं, वहाँ आप प्रदर्शन कर रहे हैं काम में शायद गति-अप अवसर हैं - डेटा पहले से अनुक्रमित किया जा सकता है सर्वर पर गणना को तेज/सरल बनाने के लिए, इस तरह की चीजें। लेकिन मुझे नहीं पता कि आप क्या गणना कर रहे हैं।

संबंधित मुद्दे