में जावास्क्रिप्ट लंबे चलने वाली चेतावनी संवाद को बाईपास करना मुझे अपने पृष्ठ पर एक सुपर लम्बी जावास्क्रिप्ट चलाने की आवश्यकता है। ग्राहक शिकायत कर रहा है कि आईई स्क्रिप्ट के लिए एक चेतावनी संवाद दिखाता है। दुर्भाग्यवश, स्क्रिप्ट की लंबाई को कम करने का कोई तरीका नहीं है, इसलिए मैं समस्या के लिए बाईपास ढूंढने की कोशिश कर रहा हूं।IE
Microsoft support website के अनुसार:
आईई निष्पादित स्क्रिप्ट बयान की कुल संख्या ट्रैक करता है और मूल्य हर बार एक नई स्क्रिप्ट निष्पादन इस तरह के एक समय समाप्ति से रूप में या एक ईवेंट हैंडलर प्रारंभ हुआ है, रीसेट करता है। यह "लंबे समय से चलने वाली स्क्रिप्ट" संवाद बॉक्स प्रदर्शित करता है जब वह मान सीमा सीमा से अधिक है।
हालांकि मैंने अपनी स्क्रिप्ट को टुकड़ों में तोड़ने के लिए setInterval() और setTimeout() दोनों का उपयोग करने का प्रयास किया है, लेकिन कोई भी काम नहीं कर रहा है। मैं जिस ब्राउज़र का उपयोग कर रहा हूं वह आईई 8 है।
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js"></script>
</head>
<body>
<div id ="test"></div>
<div id ="log"></div>
</body>
<script>
var repeat =0;
function heavyTask(){
if (repeat<50){
y = longRun();
setTimeout("heavyTask()",100);
}else{
$('#test').html("done!");
}
}
function longRun(){
for(var i =0; i<20000;i++){ }
repeat++;
$('#log').append('<div>repeat: '+ repeat +'</div>');
};
$(document).ready(function() {
setTimeout("heavyTask()",100);
});
</script></html>
आदेश कोड काम करने के लिए, आप रजिस्ट्री को संपादित करने, HKEY_CURRENT_USER \ Software \ Microsoft \ इंटरनेट एक्सप्लोरर \ शैलियाँ पर जाएँ, और सेट "MaxScriptStatements" कहा जाता DWORD मान है: मेरी कोड निम्नलिखित के रूप में है 100,000 तक यदि शैलियाँ कुंजी मौजूद नहीं है, तो एक नई कुंजी बनाएं जिसे स्टाइल कहा जाता है।
धन्यवाद,
वहाँ कहीं में एक प्रश्न है? –
@Marc आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद। मैंने पहले इसकी खोज की है लेकिन मुझे कोई व्यवहार्य समाधान नहीं मिला। असल में मुझे लगता है कि कोई समाधान नहीं हो सकता है। मैं बस अपने मालिक को यह सुनिश्चित करना और रिपोर्ट करना चाहता हूं। ;) –