2012-04-20 12 views
5

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

अब समस्या कभी कभी होता है है कि नेटवर्क कनेक्टिविटी, छवियों का प्रतिपादन के दौरान खो जाता है कि समय है कि कोई-छवि आइकन उपकरणों पर दिखाया गया है HTML की तुलना में ...

मैं इस स्थिति से निपटने के लिए चाहते हैं कृपा से, नेटवर्क हानि के समय, मैं इसे कैप्चर करना चाहता हूं और उपयोगकर्ता को चेतावनी देना चाहता हूं कि कोई नेटवर्क कनेक्टिविटी या कुछ नहीं ...

मैंने navigator.onLine ईवेंट उपयोगकर्ता को करने का प्रयास किया .. लेकिन यह सभी सेट पर काम नहीं कर रहा है ब्राउज़र का मैं समर्थन करता हूं, जैसे मोज़िला आदि पर 5-6 संस्करण

और मेरा आवेदन केवल वाईफ़ाई स्थानीय नेटवर्क पर ही चलाया जाएगा ... इंटरनेट से कनेक्ट हो सकता है या नहीं .. उस सूट में भी यह navigator.onLine काम करेगा ..?

मुझे यह करने के लिए किसी भी अन्य बेहतर तरीका प्रदान करें ...

+0

कोडर के रूप में मेरे पूरे अनुभव में, मैं इस निष्कर्ष पर पहुंचा हूं कि यह निर्धारित करना कभी भी संभव नहीं है कि आप ऑनलाइन हैं या नहीं, प्लेटफ़ॉर्म या प्रोग्रामिंग भाषा से स्वतंत्र – ControlAltDel

उत्तर

2

आपको अपने सर्वर पर एक छोटे से एक्सएचआर अनुरोध करते हैं और वापस आ स्थिति के लिए जांच कर सकता है।

यदि यह 0 है, तो इसका अर्थ है the connection is missing

तो, कुछ इस तरह आप एक छोटे उपयोगिता समारोह दे सकता है:

function isOnline (callback) { 
    var xhr = new XMLHttpRequest() 
    xhr.onreadystatechange = function () { 
     // Make sure the request is finished 
     if (xhr.readyState === 4) { 
      // There is the magic 
      if (xhr.status === 0) { 
       callback(false) 
      } 
      else { 
       callback(true) 
      } 
     } 
    } 
    xhr.open('/some/url') 
    xhr.send() 
} 

// Usage example: 
isOnline(function (status) { 
    if (status) { 
     // You're online 
    } 
    else { 
     // You're not online 
    } 
}) 

पुनश्च: मैं xhr वस्तु के लिए IE अनुपालन भाग को छोड़ दिया है, लेकिन यह जोड़ना आसान होगी। यह विचार पाने के लिए और अधिक है।

2

उदाहरण के लिए, आप उपयोग कर सकते

<img src="..." onerror="noConnection()"> 

तो noConnection विधि हैं कि कोई छवि लोड नहीं हुई बुलाया जाएगा।

अधिक यहाँ जानकारी: jQuery/JavaScript to replace broken images

+0

क्या आप दस्तावेज़ में एक लिंक जोड़ सकते हैं? – Tadeck

+0

ने दस्तावेज़ों के लिए एक लिंक जोड़ा। –

+1

ठीक है, शायद W3Schools से अधिक विश्वसनीय कुछ? यह बहुत अच्छा होगा, क्योंकि डब्ल्यू 3 स्कूल्स सूचना का पूरी तरह से अविश्वसनीय स्रोत है। यहां देखें: http://w3fools.com/ – Tadeck

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