2010-12-06 5 views
6

है यदि IE पृष्ठ लोडिंग में व्यस्त है तो यह आमतौर पर favicon.ico के बजाय घुमावदार आइकन दिखाता है। लेकिन यह कैसेआईई ने यह निर्धारित करने के लिए कैसे किया है कि क्या यह प्रति डोमेन कनेक्शन सीमा

  1. कनेक्शन सीमा निम्नलिखित के बीच भेद करने पहुंचा जा सकता है और IE अभी तक सभी सामग्री
  2. आईई अपने सभी अनुरोधों से प्रतिक्रिया मिली लेकिन पेज

एक शो IE करेंगे प्रतिपादन व्यस्त है प्राप्त नहीं हुआ है व्यस्त आइकन यदि कोई जावास्क्रिप्ट आपरेशन पूरी नहीं हुई है (मुख्य रूप से onload JavaScript कॉल?)

धन्यवाद और सादर, अविनाश

उत्तर

0

शायद एकमात्र तरीका Fiddler जैसा कुछ देखना होगा - और फिर आप ट्रैक कर सकते हैं कि आईई क्या कर रहा है, और (मजेदार समय) गिनती करता है।

मैं किसी अन्य तरीके से, दुख की बात नहीं सोच सकता।

+0

धन्यवाद डैनप।लेकिन क्या आपको लगता है कि कुछ जावास्क्रिप्ट हैंडलर जैसे जानकारी प्राप्त करने का कोई प्रोग्रामेटिक तरीका है कि कनेक्शन कनेक्शन समाप्त होने पर कितने कनेक्शन व्यस्त हैं, अगर जावास्क्रिप्ट कॉल अंतहीन पाश में हैं? – avinash

+0

ऐसा नहीं है कि मुझे पता है - मुझे लगता है कि यह एमएसडीएन के माध्यम से खुदाई का मामला है और यह देखकर कि इस जानकारी को पकड़ने का कोई तरीका है या नहीं। हो सकता है कि आप इसे थोड़ा सा नेट ऐप या उसके साथ जोड़ सकें .. लेकिन मैं बस अनुमान लगा रहा हूं। ऐसा लगता है कि आपको उस चीज़ की तरह लगता है जिसे आपको जानने की आवश्यकता नहीं है, या क्लाइंट साइड कोड ऑप्टिमाइज़ेशन के साथ हल किया जा सकता है। – dmp

1

"1. कनेक्शन सीमा तक पहुंच गई है और आईई को अभी तक सभी सामग्री प्राप्त नहीं हुई है" यह सीमा WinInet में लगाई गई है, मैंने इस सवाल का जवाब देने की भी कोशिश नहीं की क्योंकि लगभग सभी तरीकों से मैं सोच सकता था समस्या से संपर्क करें (पृष्ठ के भीतर से) उन विधियों को शामिल करें जो पृष्ठ के लोड समय को और कम कर देंगे। फिडलर के बारे में डैनपी का सुझाव एक अच्छा है, आप जो भी कर सकते हैं वह फिडलर के लिए एक एक्सटेंशन या कुछ कस्टम स्क्रिप्ट लिखना है जो लॉग ऑन करेगा जब किसी भी मेजबान नाम पर दो अनुरोध किसी भी समय प्रसंस्करण कर रहे थे ताकि आपके पास लॉग हो। अन्यथा यह फिडलर में आंखों को गेंदबाजी करने का मामला है और यह देखने के लिए कि एक ही मेजबान नाम के दो अनुरोध एक ही समय में प्रसंस्करण कर रहे हैं, लेकिन आम तौर पर अनुरोध इतनी जल्दी खत्म हो जाते हैं कि फिडलर में इसका अच्छा अनुभव प्राप्त करने का प्रयास यूआई देखकर समस्याग्रस्त हो सकता है।

"2.IE को इसके सभी अनुरोधों से प्रतिक्रिया प्राप्त हुई है, लेकिन पृष्ठ को प्रस्तुत करने में व्यस्त है" ऐसा लगता है जैसे आप जानना चाहते हैं कि पृष्ठ उपयोगकर्ता के साथ बातचीत करने के लिए तैयार है। इस तथ्य का तथ्य यह है कि आईई इन कार्यों को समकालिक रूप से निष्पादित नहीं करता है, यह पृष्ठ को डाउनलोड करते समय पृष्ठ प्रस्तुत करता है, और उपयोगकर्ता पृष्ठ के साथ बातचीत कर सकता है जबकि आईई अभी भी व्यस्त है। तो मैंने जो किया है, वह यहां एक उदाहरण शामिल है जो दिखाता है कि आप कैसे बता सकते हैं कि इंटरनेट एक्सप्लोरर टैब में उस स्पिनर आइकन को फ़ेविकॉन में स्विच किया जाता है। Document.readyState == "पूर्ण" होने पर स्पिनर चला जाता है, हालांकि पृष्ठ उपयोगकर्ता के लिए document.readyState == "इंटरैक्टिव" पर इसके साथ बातचीत करने के लिए तैयार है जो दस्तावेज़ के बाद भी होता है .body.readyState == " पूरा करें ", मुझे नहीं पता कि document.body.readyState ==" पूर्ण "document.readyState ==" इंटरैक्टिव "का कारक है लेकिन वे निश्चित रूप से मेल खाते हैं। हालांकि, अगर आप यह निर्धारित करना चाहते हैं कि सब कुछ डाउनलोड किया गया था, तो डीओएम में प्रत्येक तत्व के पास एक तैयार स्टेटस संपत्ति है, तो आप संभावित रूप से डीओएम को यह जांचने के लिए अनुमान लगा सकते हैं कि क्या प्रत्येक तत्व को तैयार करने के लिए तैयार है == "पूर्ण" यह निर्धारित करने के लिए कि प्रत्येक तत्व डाउनलोड किया गया है या नहीं और प्रतिपादन।

नमूना एचटीएमएल जो आप अपने कंप्यूटर पर सहेज सकते हैं और चला सकते हैं, लेकिन यदि आप इसे स्थानीय डिस्क से चलाते हैं, तो IE आपको येलो जानकारी बार के साथ संकेत देगा, और आपको स्क्रिप्ट चलाने की अनुमति देने के लिए राइट क्लिक करने की आवश्यकता होगी । जब एचटीएमएल सही तरीके से चलाया जाता है तो आपको जावास्क्रिप्ट अलर्ट देखना चाहिए, आप उस चेतावनी पर ध्यान देंगे जो "document.readyState: interactive" कहता है कि स्पिनर अभी भी कताई कर रहा है, लेकिन जब "document.readyState: पूरा" कहता है तो आपको नोटिस होगा स्पिनर आइकन चले गए हैं। उम्मीद है की यह मदद करेगा।

<html> 
<head> 
    <script language="javascript"> 
     document.onreadystatechange = function(e) 
     { 
      alert("Document State: " + 
          document.readyState + 
          "\nBody State: " + 
          document.body.readyState); 
     }; 
    </script> 
</head> 
<body> 
Test Content 
<div id="placeToAddTo"></div> 
<script language="javascript" type="text/javascript"> 
    for(var i = 0; i < 1000; i++) 
    { 
     var obj = document.createElement("div"); 
     obj.innerText = "Div Number: " + i + " Document State: " 
        + document.readyState + " Body State: " 
        + document.body.readyState; 
     document.getElementById("placeToAddTo").appendChild(obj); 
    } 
    alert("completed creating object"); 
</script> 
</body> 
</html> 
संबंधित मुद्दे