SORU
26 Kasım 2010, Cuma


Javascript bir sunucuya ping işlemi yapmak mümkün mü?

Eğer uzak sunuculara çevrimiçi olup olmadığını görmek için kontrol gerektirir bir web uygulama geliştiriyorum. Ben komut satırından çalıştırmak, benim sayfa yük tam bir 60'lar (8 girişler için, daha doğrusal ölçek) kadar çıkıyor.

Kullanıcının son ping rota gitmeye karar verdim. Bu sayede sayfa yükleme ve sadece onları beklemek zorunda miyim "server online içerik tarama sırasında" veri.

Eğer yukarıdaki sorunun cevabı varsa, ya da eğer benim sayfa yük hızlı tutmak için bir çözüm biliyorsanız, kesinlikle memnun olurum.

CEVAP
13 AĞUSTOS 2012, PAZARTESİ


Image nesne yerli, çok zeki bir kullanım ile bunu gerçekleştirir birini buldum.

Kendi kaynağından, bu ana işlevi (kaynak diğer kısımlarında bağımlılıklarını var ama fikir olsun).

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);

  }
}

Bu test ettik sunucuları (web sunucuları, ftp sunucuları, oyun sunucuları) her türlü çalışır. Ayrıca port ile çalışır. Eğer herkes başarısız kullanmak durumunda karşılaşırsa, lütfen yorum ve cevabım güncellenir.

GüncellemeÖnceki link kaldırılmıştır. Eğer kimse veya yukarıdaki bulursa uygular, lütfen yorum ve cevap içine ekleyeceğim.

Güncelleme 2: @trante bir jsFiddle sağlamak için yeterince güzeldi.

http://jsfiddle.net/GSSCD/203/

Güncelleme 3: @Jonathon bir GitHub repo oluşturulan bir uygulama ile.

https://github.com/jdfreder/pingjs

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Erica Griffin

    Erica Griffi

    8 HAZİRAN 2009
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008
  • Rootjunky.com

    Rootjunky.co

    22 EKİM 2011