Bolehkah Javascript Ping Pelayan?
Apabila membuat aplikasi web, adalah perlu untuk menentukan ketersediaan pelayan luaran. Walaupun skrip sebelah pelayan boleh melaksanakan tugas ini dengan mudah menggunakan arahan seperti "ping", keupayaan Javascript dalam kawasan ini telah terhad.
Walau bagaimanapun, kaedah yang bijak telah muncul menggunakan objek Imej asli. Dengan memuatkan imej daripada pelayan sasaran, Javascript boleh mengeksploitasi mekanisme terbina dalam untuk mengambil sumber untuk menentukan ketersediaan pelayan.
Pelaksanaan
Coretan kod berikut menggambarkan fungsi utama untuk melaksanakan ping:
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); } }
Fungsi mencipta objek imej dan menetapkan pendengar untuk acara "onload" dan "onerror". Imej itu kemudiannya dimuatkan daripada pelayan sasaran, dan tamat masa ditetapkan untuk mengendalikan kes di mana pelayan tidak bertindak balas. Berdasarkan keputusannya, kaedah "baik()" atau "buruk()" dipanggil untuk menunjukkan ketersediaan pelayan.
Faedah
Teknik ini menawarkan beberapa kelebihan:
Kemas kini
Penyelesaian yang dibentangkan mungkin mengalami masalah keserasian dengan penyemak imbas yang lebih baharu. Untuk mendapatkan kemas kini terkini dan penyelesaian alternatif, rujuk repositori GitHub yang disertakan:
[https://github.com/jdfreder/pingjs](https://github.com/jdfreder/pingjs)
Atas ialah kandungan terperinci Bolehkah JavaScript Ping Pelayan Tanpa Menggunakan Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!