Rumah  >  Artikel  >  hujung hadapan web  >  Bolehkah Pelayan Ping JavaScript untuk Pemantauan Rangkaian Berasaskan Pelayar?

Bolehkah Pelayan Ping JavaScript untuk Pemantauan Rangkaian Berasaskan Pelayar?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 18:29:10837semak imbas

Can JavaScript Ping Servers for Browser-Based Network Monitoring?

Ping Pelayan daripada JavaScript: Pemantauan Rangkaian Berasaskan Penyemak Imbas

Menggunakan ping sebagai alat pemantauan rangkaian adalah amalan biasa, dan selalunya digunakan untuk mengesahkan ketersediaan pelayan jauh. Walaupun arahan ping tradisional boleh dilaksanakan daripada baris arahan, terdapat pengehadan pada pendekatan ini, seperti peningkatan masa muat halaman.

Untuk mengoptimumkan prestasi halaman, pertimbangkan untuk menjalankan proses ping di hujung pengguna. Ini membolehkan pemuatan halaman lebih pantas sementara pengguna menunggu status ketersediaan pelayan. Walau bagaimanapun, ia menimbulkan persoalan: adakah ia boleh dilakukan untuk ping pelayan daripada JavaScript?

Melaksanakan Ping JavaScript

Penyelesaian yang disediakan memanfaatkan objek Imej dalam JavaScript untuk mencapai ini tugasan. Coretan berikut menunjukkan fungsi teras:

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

  }
}

Skrip menggunakan ciri pemuatan tak segerak objek Imej. Jika imej berjaya dimuatkan (menunjukkan ketersediaan pelayan), peristiwa onload akan dicetuskan. Sebaliknya, jika imej gagal dimuatkan (menunjukkan ketiadaan pelayan), peristiwa onerror akan dicetuskan. Kaedah ini secara berkesan memintas sekatan penyemak imbas pada arahan ping langsung sambil mengekalkan keupayaan untuk menentukan ketersediaan pelayan.

Penyelesaian Alternatif dan Kaveat

Walaupun penyelesaian ini telah dilaporkan berfungsi merentas pelbagai jenis dan port pelayan, adalah penting untuk ambil perhatian bahawa kebolehpercayaan pelaksanaan ini mungkin berbeza-beza. Selain itu, Chrome mungkin tidak lagi menyokong kaedah ini, yang berpotensi mengakibatkan ralat bersih::ERR_NAME_NOT_RESOLVED.

Jika anda mengalami isu ini, pertimbangkan untuk meneroka penyelesaian alternatif, seperti yang tersedia di https://github.com /jdfreder/pingjs.

Atas ialah kandungan terperinci Bolehkah Pelayan Ping JavaScript untuk Pemantauan Rangkaian Berasaskan Pelayar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn