2009-05-07 8 views
25

यह प्रश्न this question का एक स्पिन-ऑफ/विकास है। (उस सवाल को हल करने के रूप में चिह्नित किया गया क्योंकि मैंने इस पर एक इनाम दिया और यह स्वतः हल हो गया, लेकिन इसे वास्तव में कभी जवाब नहीं मिला।)आईई 8 स्मृति पृष्ठों को छोड़ रहा है?

सारांश यह है: हमारे पास ASP.NET साइट है। कभी-कभी जब ग्राहक विचित्र यूआरएल मांगता है तो हमें त्रुटियां मिलती हैं। क्लाइंट के लिए पूछे जा रहे संसाधनों से, ऐसा लगता है कि एचटीएमएल स्रोत से 4k ब्लॉक टेक्स्ट गायब है।

एक साधारण उदाहरण ... हम एक पेज है कि इस तरह दिखता है, तो: "myValidLiORE% 20STUFF% 20LATER":

<a href="myValidLink.aspx">Here's some text</a> 
a bunch more stuff 
...(a large block of text)... 
AND NOW MORE STUFF LATER 

ग्राहक यूआरएल के लिए कह सकता है।

ऐसा लगता है कि एचटीएमएल स्रोत का एक वर्ग बस वहां नहीं था ... और वह खंड जो गायब है, ठीक है 4KB (4096 बाइट) लंबा (या कुछ लोगों के अनुसार, कभी-कभी 1 केबी?)।

दुर्भाग्यवश, हम मांग पर इस त्रुटि को दोहराने में असमर्थ हैं, हालांकि हम देखते हैं कि यह प्रति दिन कई बार ग्राहकों से आ रहा है।

पहले हमने सोचा कि यह Webresource.axd के साथ एक समस्या थी, क्योंकि हम इसे वहां बहुत कुछ देख रहे थे ... लेकिन अब मुझे लगता है कि मुख्य रूप से हम समान त्रुटियों को एक साथ जोड़ रहे थे, और उन त्रुटियों के साथ होने वाली त्रुटियां जब उस विशेष क्षेत्र में भ्रष्टाचार हुआ। अब जब मैं समस्याओं की एक विस्तृत श्रृंखला देख रहा हूं, तो मैं उन जगहों को देख रहा हूं जहां हमें बहुत अलग त्रुटियां मिल रही हैं, ऐसा लगता है कि वे एक खंड को छोड़ने की एक ही समस्या के कारण होते हैं।

हमने इसे आईई 8 के साथ बहुत कुछ देखा है, और यह अधिक बार प्राप्त हुआ है क्योंकि आईई 8 अधिक प्रचलित हो गया है। हम इसे एक ब्राउज़र के साथ मौलिक रूप से देखते हैं जो खुद को आईई 7 के रूप में रिपोर्ट करता है ... यदि आईई 8 "संगतता मोड" में डाल दिया जाता है तो आईई 8 करेगा।

मेरा सिद्धांत, इस बिंदु पर (जिसे मैं परीक्षण करने का कोई तरीका ढूंढने की कोशिश कर रहा हूं) यह है कि वेब सर्वर बाइट स्ट्रीम में सभी डेटा सही ढंग से भेज रहा है ... और ब्राउज़र, आईई 8 , एक समस्या है, और कुछ स्थितियों के तहत एक मेमोरी पेज (4k) ड्रॉप करता है।

मैं इस सिद्धांत के बारे में थोड़ा चिंतित हूं, हालांकि, जाहिर है कि कुछ लोगों ने आईई 6 या एफएफ 3 के साथ "मौलिक रूप से" यह देखने की सूचना दी है ... ये बाहरी हैं, और समान ही समस्याएं हो सकती हैं लक्षण, लेकिन यदि यह वास्तव में उन ब्राउज़रों पर एक ही बात है, जो मेरे सिद्धांत को पानी से बाहर निकाल देगा। फिर भी, इस बिंदु पर मेरे पास कोई बेहतर विचार नहीं है।

मेरे पास एक और विचार है जो सर्वर पर अपेक्षाकृत हाल ही में एक सर्विस पैक है, जो ग्राहकों को डेटा के साथ समस्याएं पैदा कर रहा है, कभी-कभी 4 केबी छोड़ देता है। इस सिद्धांत के साथ समस्या यह है कि यह आईई 8 पर त्रुटियों के महान प्रीपेरेंसेंस और अन्य क्लाइंट ब्राउज़रों पर उनकी कमी की व्याख्या नहीं करता है।

तो सवाल है, जो उम्मीद है कि अंत में जवाब दिया जाएगा:

  1. किसी और इस का सामना करना पड़ा है? (शायद अब यह आपके रडार पर है?)
  2. क्या कोई इस समस्या को लगातार दोहरा सकता है?
  3. इसका कोई विचार क्या है? क्या आप मेरे सिद्धांत को सत्यापित या अस्वीकार कर सकते हैं?
  4. क्या कोई फिक्स या वर्कअराउंड हैं?
+1

अद्यतन: 4k बग अब 3/30/2010 को IE8 संचयी अद्यतन द्वारा तय किया गया है। http://blogs.msdn.com/ieinternals/archive/2010/04/01/IE8-Lookahead-Downloader-Fixed.aspx – EricLaw

उत्तर

12

** संपादित करें 4/1/10: ** अद्यतन: 4k बग अब 3/30/2010 को IE8 संचयी अद्यतन द्वारा तय किया गया है। blogs.msdn.com/ieinternals/archive/2010/04/01/

इंटरनेट एक्सप्लोरर टीम इस मुद्दे की जांच कर रही है।

- = प्रभाव = -

प्रकार अब तक, हमें विश्वास है कि समस्या वेब अनुप्रयोग के साथ अंत उपयोगकर्ता के अनुभव पर कोई प्रभाव नहीं पड़ता है; जावास्क्रिप्ट सट्टा-डाउनलोड इंजन द्वारा भेजे गए नकली/विकृत अनुरोधों का एकमात्र नकारात्मक प्रभाव है। जब स्क्रिप्ट को वास्तव में पार्सर द्वारा आवश्यक होता है, तो उस समय इसे ठीक से डाउनलोड और उपयोग किया जाएगा।

- = परिस्थितियाँ = -

नकली-अनुरोध केवल कुछ समय स्थितियों में होते हैं, केवल जब पूर्व पार्सर पुनः आरंभ करने के लिए मजबूर किया जाता दिखाई देता है (के रूप में जब एक मेटा HTTP-समतुल्य एक सामग्री प्रकार युक्त टैग एक चार्जेट निर्देश दस्तावेज़ में प्रकट होता है) और केवल तभी जब कोई जावास्क्रिप्ट एसआरसी यूआरएल HTTP प्रतिक्रिया निकाय के 4096 वें बाइट को फैलाता है।

- = वर्कअराउंड = -

वर्तमान में हम मानते हैं कि यह मुद्दा आम तौर पर HTTP Content-Type हैडर का उपयोग कर पेज के CHARSET घोषित करने के बजाय पृष्ठ के भीतर यह निर्दिष्ट करने के द्वारा कम किया जा सकता।

तो, बल्कि

डालने से [मेटा HTTP-समतुल्य = "सामग्री प्रकार" सामग्री = "text/html; charset = utf-8"]

अपने सिर टैग में, बजाय, भेज निम्नलिखित HTTP प्रतिक्रिया शीर्षलेख:

सामग्री-प्रकार: टेक्स्ट/एचटीएमएल; charset = utf-8

ध्यान दें कि HTTP शीर्षलेख में वर्णमाला के विनिर्देश के परिणामस्वरूप सभी ब्राउज़रों में बेहतर प्रदर्शन होता है, क्योंकि ब्राउज़र के पार्सर्स को चरित्र सेट घोषणा का सामना करने से शुरुआत से पार्सिंग को पुनरारंभ करने की आवश्यकता नहीं होती है। इसके अलावा, HTTP शीर्षलेख का उपयोग करके कुछ एक्सएसएस हमले वैक्टरों को कम करने में मदद मिलती है।

+1

http://blogs.msdn.com/ieinternals/archive/2009/07/27/ Bugs-in-the-IE8-Lookahead-Downloader.aspx – EricLaw

+0

आईआईएस में एक HTTP शीर्षलेख सेट करना स्टाइलशीट्स और छवियों के लिए भी सभी अनुरोधों के लिए इसका उपयोग करता है। आईआईएस में इसे सेट किए बिना ऐसा करने का कोई तरीका है? – goldenratio

+1

आप एक आईएसएपीआई फ़िल्टर का उपयोग कर सकते हैं, या आपके एएसपी/एएसपीएक्स कोड मैन्युअल रूप से हेडर जोड़ सकते हैं। हालांकि, जैसा कि आईईइंटरनल ब्लॉग पर उल्लेख किया गया है, हमने यह निर्धारित किया है कि छोटी गाड़ी व्यवहार को ट्रिगर करने के कुछ अलग-अलग तरीके हैं, और दुर्भाग्यवश पूर्व-पार्सर रीसेट के कारण रीसेट की वजह से उनमें से केवल एक ही है। वास्तव में इस समस्या को खत्म करने के लिए ब्राउज़र में एक फिक्स की आवश्यकता है। – EricLaw

2

http://blogs.msdn.com/ieinternals/archive/2009/07/27/Bugs-in-the-IE8-Lookahead-Downloader.aspx इस मुद्दे पर वर्तमान पोस्ट है।

गुम 4k बग: आलेख कहता है: "पेज के भीतर निर्दिष्ट करने के बजाय HTTP सामग्री-प्रकार शीर्षलेख का उपयोग करके पृष्ठ के चार्ज को घोषित करके, आप पार्सर रीस्टार्ट के एक कारण को हटा सकते हैं।" ईमेल में एरिक लॉरेंस: "दुर्भाग्यवश, पार्सर रीस्टार्ट का एक अन्य ज्ञात कारण एक्सएमएल नेमस्पेस का उपयोग है, जो आपकी साइट का उपयोग प्रतीत होता है।" तो यदि आप एक्सएचटीएमएल का उपयोग करते हैं तो 4K समस्या हो सकती है!

0

हमें एक ही समस्या है। मैं जोड़ रहा हूं:

 Response.ContentType = "text/html" 
     Response.Charset = "utf-8" 

हमारे बेस पेज क्लास में। मैं जल्द ही परिणामों पर रिपोर्ट करूंगा।

+0

कोई भाग्य - अभी भी समस्या हो रही है। – ChickenMilkBomb

0

FWIW यहां लॉगपर्सर में 1 महीने के लॉग से प्राप्त आंकड़े हैं।

12331 hits to ScriptResource & WebResource/183 errors

UserAgent जानकारी से नीचे टूटी।आईई 8 केवल सिद्धांत (प्लस "संगतता मोड" उपयोगकर्ता एजेंट) का समर्थन करने के लिए लगता है।

 
cs-uri-stem   MSIEVersion TridentVersion COUNT 
/WebResource.axd  MSIE+8.0 Trident/4.0  100 
/ScriptResource.axd MSIE+8.0 Trident/4.0  36 
/WebResource.axd  MSIE+7.0 Trident/4.0  44 
/ScriptResource.axd MSIE+7.0 Trident/4.0  2 
/ScriptResource.axd NOT IE  NOT Trident  1 

एक गैर IE8 त्रुटि सभी में कोई क्वेरी स्ट्रिंग है, एक Firefox/3.5.3 ब्राउज़र से आ रही (असंबंधित हो गया)।

मेरे पास नहीं है किसी भी मेटा HTTP-समतुल्य = "सामग्री प्रकार" मेरे पन्नों में। हालांकि मेरे पास गैर-जावास्क्रिप्ट उपयोगकर्ताओं को उछालने के लिए यह है।

<noscript> 
    <meta http-equiv=Refresh content="0; URL=/ErrorPage.aspx?Error=NoJavascript"> 
</noscript>