Maison > interface Web > js tutoriel > JavaScript peut-il envoyer un ping à un serveur sans utiliser de bibliothèques externes ?

JavaScript peut-il envoyer un ping à un serveur sans utiliser de bibliothèques externes ?

Patricia Arquette
Libérer: 2024-12-01 19:31:10
original
145 Les gens l'ont consulté

Can JavaScript Ping a Server Without Using External Libraries?

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

  }
}
Copier après la connexion

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 :

  • Compatibilité multiplateforme : Il fonctionne sur différents types de serveurs et prend en charge ports.
  • Impact minimal sur le chargement de la page : En effectuant le ping côté client, le chargement initial de la page n'est pas affecté.
  • Simplicité de mise en œuvre : Le code est simple et facile à intégrer applications.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal