2012-02-20 17 views
9

में लोड नहीं होता है मेरे पास बाहरी जावास्क्रिप्ट फ़ाइलें हैं जो मेरे मास्टर पेज में लोड हो जाती हैं।जावास्क्रिप्ट कभी-कभी IE8

कभी-कभी IE8 में मेरी जावास्क्रिप्ट फ़ाइलों को सही ढंग से लोड नहीं किया जाता है और ब्राउज़र त्रुटियों का एक गुच्छा फेंकता है जिसमें वस्तु पहचान नहीं है।

यदि मैं पृष्ठ को रीफ्रेश करता हूं तो सबकुछ ठीक है। अगर मैं एक लिंक पर क्लिक करता हूं तो समस्या कभी-कभी होती है।

मेरे पास प्रत्येक अनुरोध पर कैश साफ़ करने के लिए मेरे शीर्षलेख में मेटा टैग हैं।

इसके अलावा मैं अपने जेएस फ़ाइलों को समानांतर में लोड करने के लिए head.load का उपयोग कर रहा हूं।

हेड.लोड स्क्रिप्ट मेरे शीर्षलेख में है और फिर बाहरी फाइलें मेरे शरीर के अंत में हैं।

कृपया याद रखें कि यह समस्या केवल IE8 में होती है। तो मेरा सवाल यह है कि क्या कोई हैक है जिसका उपयोग मैं यह सुनिश्चित करने के लिए कर सकता हूं कि प्रत्येक बार पृष्ठ IE8 के लिए लोड होने पर मेरी जावास्क्रिप्ट फ़ाइलों को सही ढंग से लोड किया जा सके?

किसी भी मदद की सराहना की जाएगी।

अपडेट किया गया अनुरोध किया

<head runat="server"> 
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" /> 
    <meta http-equiv="PRAGMA" content="NO-CACHE" /> 
    <meta http-equiv="EXPIRES" content="-1" /> 

    <script type="text/javascript" src="scripts/js/head.load.min.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
    head.js("scripts/js/jquery-1.6.2.min.js"); 
     head.js("scripts/js/jquery.cookie.js"); 
    head.js("lib/gritter/jquery.gritter.min.js"); 
    head.js("lib/fancybox/jquery.easing-1.3.pack.js"); 
    head.js("lib/fancybox/jquery.fancybox-1.3.4.pack.js"); 
    head.js("scripts/js/jquery.microaccordion.js"); 
    head.js("scripts/js/jquery.stickyPanel.js"); 
    head.js("scripts/js/guidely.js"); 
    head.js("scripts/js/pto.js"); 
</script> 
</body> 
+0

शायद आपके 'head.load' कोड को उद्धृत करने की आवश्यकता है। –

+0

'त्रुटियों का एक गुच्छा फेंकता है कह रहा है कि वस्तु पहचान नहीं है' विशिष्टता मदद करेगा। – Shad

+0

@damaniel, आप कहते हैं कि यह कोड केवल IE8 में विफल रहता है। आपने जिन अन्य ब्राउज़रों पर इसका परीक्षण किया है, वे क्या हैं? क्या आपने किसी अन्य मशीन पर आईई 8 की कोशिश की? क्या आप समस्या को सुरक्षित मोड में पुन: उत्पन्न कर सकते हैं ('-extoff' कमांड लाइन विकल्प)? –

उत्तर

2

ठीक समस्याओं के रूप में कैसे head.load फ़ाइल IE8 में मेरी बाहरी लोड करता प्रतीत होता है। अगर मैं अपना सिर लोड करने से पहले jquery लोड करता हूं। फ़ाइल लोड करें और फिर पेज के अंत में समानांतर में मेरे बाहरी लोड करें, तो पेज पर उनकी कोई त्रुटि नहीं है।

यह निश्चित रूप से एक समाधान है, लेकिन मेरी इच्छा है कि आईई में जावास्क्रिप्ट त्रुटियों के बिना भी jquery को सिर में लोड किया जा सके। मुझे यकीन है कि यह बाद के संस्करणों में एक त्रुटि नहीं होगी।

धन्यवाद - इनपुट के लिए आप सभी को धन्यवाद।

@ frederic - मैं ऐसी कंपनी में काम करता हूं जिसमें 188,000 कर्मचारी हैं। अगर उनके ब्राउज़र में इंस्टॉल किया गया है जो मेरे पेज को क्रैश कर रहा है तो उसके बारे में कुछ भी नहीं है। मुझे यह भी नहीं लगता कि यह समस्या किसी भी ऐड ऑन के कारण हो रही है। मुझे लगता है कि आईई 8 में हेड.लोड कैसे संभाला जाता है।

@ शार्ड - मुझे नहीं लगता कि आप समझते हैं कि मैं क्या पूछ रहा था और यदि ऐसा है तो मुझे और अधिक स्पष्ट होने के लिए खेद है। वैसे भी मुझे आपके इनपुट के लिए धन्यवाद मिला है। अनुभाग प्रयोग में पेज http://headjs.com/ पर

<head runat="server"> 
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" /> 
    <meta http-equiv="PRAGMA" content="NO-CACHE" /> 
    <meta http-equiv="EXPIRES" content="-1" /> 
    <script type="text/javascript" src="scripts/js/jquery.min.js"></script> 
    <script type="text/javascript" src="scripts/js/head.load.min.js"></script> 
</head> 

<script type="text/javascript"> 
    head.js("scripts/js/jquery.cookie.js"); 
    head.js("lib/gritter/jquery.gritter.min.js"); 
    head.js("lib/fancybox/jquery.easing-1.3.pack.js"); 
    head.js("lib/fancybox/jquery.fancybox-1.3.4.pack.js"); 
    head.js("scripts/js/jquery.microaccordion.js"); 
    head.js("scripts/js/jquery.stickyPanel.js"); 
    head.js("scripts/js/guidely.js"); 
    head.js("scripts/js/pto.js"); 
</script> 
+1

हाय, मैं कठोर होना नहीं चाहता हूं लेकिन आपका जवाब यह आपकी विशेष समस्या से मदद कर सकता है लेकिन वास्तव में यह हेडजेस के साथ डीपीएस पर सामान्य समस्या को हल नहीं कर रहा है, मेरे उत्तर को पढ़ने पर विचार करें और शायद आप पर एक टिप्पणी डालें। –

0

देखो आप वास्तव में क्या देखेंगे अपने कोड के साथ गलत है:

// फ़ाइलें समानांतर रूप से भरी हुई है और आदेश में मार डाला वे head.js पहुंचें ("कर रहे हैं file1.js "); head.js ("file2.js"); head.js ("file3.js");

आपका लिपियों समानांतर में लोड हो रहा है दिया जाता है और आगमन के समय में क्रियान्वित कर रहे हैं, कि, jQuery पर deps के लिए बहुत बुरा है अगर आप चाहते हैं उन्हें क्रम में क्रियान्वित किया जा करने के लिए उपयोग करें:

head.js("scripts/js/jquery-1.6.2.min.js", 
     "scripts/js/jquery.cookie.js", 
     "lib/gritter/jquery.gritter.min.js"), 
     "lib/fancybox/jquery.easing-1.3.pack.js", 
     "lib/fancybox/jquery.fancybox-1.3.4.pack.js", 
     "scripts/js/jquery.microaccordion.js", 
     "scripts/js/jquery.stickyPanel.js", 
     "scripts/js/guidely.js", 
     "scripts/js/pto.js"); 

आप कॉल करने की आवश्यकता लोड करने के लिए संसाधनों की एक सूची के साथ जेएस, कई बार जेएस कॉल नहीं।

+0

प्रलेखन आप की बात थी नहीं एक साल पहले जब मैं वास्तव में इस समस्या हुई है और मैं बहुत यकीन है कि बाहरी फ़ाइलें अल्पविराम से परे या तो headjs की एक विशेषता नहीं था लोड हो रहा है .... लेकिन इसकी बहुत अच्छा आप ऐसा कर सकते है कि कर रहा हूँ उपलब्ध अब ... इनपुट के लिए धन्यवाद – damaniel