Javascript peut-il pinger un serveur ?
Lors de la création d'applications Web, il devient nécessaire de déterminer la disponibilité des serveurs externes. Bien que les scripts côté serveur puissent facilement effectuer cette tâche à l'aide de commandes telles que "ping", les capacités de Javascript dans ce domaine ont été limitées.
Cependant, une méthode ingénieuse a émergé utilisant l'objet Image natif. En chargeant une image à partir du serveur cible, Javascript peut exploiter les mécanismes intégrés de récupération des ressources afin de déterminer la disponibilité du serveur.
Implémentation
L'extrait de code suivant illustre le fonction principale pour exécuter le 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); } }
La fonction crée un objet image et définit les écouteurs pour le "onload" et événements « onerror ». L'image est ensuite chargée à partir du serveur cible et un délai d'attente est défini pour gérer le cas où le serveur ne répond pas. En fonction du résultat, les méthodes "good()" ou "bad()" sont appelées pour indiquer la disponibilité du serveur.
Avantages
Cette technique offre plusieurs avantages :
Mises à jour
La solution présentée peut rencontrer des problèmes de compatibilité avec les navigateurs les plus récents. Pour les dernières mises à jour et solutions alternatives, reportez-vous au référentiel GitHub inclus :
[https://github.com/jdfreder/pingjs](https://github.com/jdfreder/pingjs)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!