मुझे ऐसा कोई मिला है जो मूल Imageवस्तु के बहुत ही चतुर उपयोग के साथ इसे पूरा करता है ।
उनके स्रोत से, यह मुख्य कार्य है (इसमें स्रोत के अन्य भागों पर निर्भरता है लेकिन आपको विचार मिलता है)।
function Pinger_ping(ip, callback) {
if(!this.inUse) {
this.inUse = true;
this.callback = callback
this.ip = ip;
var _that = this;
this.img = new Image();
this.img.onload = function() {_that.good();};
this.img.onerror = function() {_that.good();};
this.start = new Date().getTime();
this.img.src = "http://" + ip;
this.timer = setTimeout(function() { _that.bad();}, 1500);
}
}
यह उन सभी प्रकार के सर्वरों पर काम करता है जिन्हें मैंने परीक्षण किया है (वेब सर्वर, FTP सर्वर और गेम सर्वर)। यह बंदरगाहों के साथ भी काम करता है। यदि कोई भी उपयोग के मामले का सामना करता है जो विफल रहता है, तो कृपया टिप्पणियों में पोस्ट करें और मैं अपना उत्तर अपडेट करूंगा।
अपडेट : पिछला लिंक हटा दिया गया है। अगर किसी को उपरोक्त जानकारी मिलती है या लागू होती है, तो कृपया टिप्पणी करें और मैं इसे उत्तर में जोड़ दूंगा।
अद्यतन 2 : @trante एक jsFiddle प्रदान करने के लिए काफी अच्छा था।
http://jsfiddle.net/GSSCD/203/
अद्यतन 3 : @ जोनाथन ने कार्यान्वयन के साथ एक GitHub रेपो बनाया।
https://github.com/jdfreder/pingjs
अद्यतन 4 : ऐसा लगता है कि यह कार्यान्वयन अब विश्वसनीय नहीं है। लोग यह भी रिपोर्ट कर रहे हैं कि Chrome अब सभी का समर्थन नहीं करता है, एक net::ERR_NAME_NOT_RESOLVEDत्रुटि फेंक रहा है । यदि कोई वैकल्पिक समाधान सत्यापित कर सकता है तो मैं उसे स्वीकृत उत्तर के रूप में रखूंगा।
"/?cachebreaker="+new Date().getTime();यदि आवश्यक हो तो img src के अंत में संलग्न करके इससे बचा जा सकता है।