ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript は外部ライブラリを使用せずにサーバーに ping を実行できますか?

JavaScript は外部ライブラリを使用せずにサーバーに ping を実行できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-01 19:31:10147ブラウズ

Can JavaScript Ping a Server Without Using External Libraries?

JavaScript はサーバーに ping を送信できますか?

Web アプリケーションを作成する場合、外部サーバーの可用性を確認する必要があります。サーバー側スクリプトは「ping」などのコマンドを使用してこのタスクを簡単に実行できますが、この分野における Javascript の機能は制限されています。

しかし、ネイティブの Image オブジェクトを利用する独創的な方法が登場しました。ターゲット サーバーからイメージをロードすることで、JavaScript はリソースを取得するための組み込みメカニズムを利用してサーバーの可用性を判断できます。

実装

次のコード スニペットは、 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);

  }
}

この関数はイメージ オブジェクトを作成し、そのイメージ オブジェクトのリスナーを設定します。 「onload」イベントと「onerror」イベント。次に、イメージがターゲット サーバーからロードされ、サーバーが応答しない場合に対処するためにタイムアウトが設定されます。結果に基づいて、「good()」または「bad()」メソッドが呼び出され、サーバーの可用性が示されます。

利点

この手法には、いくつかの利点があります。

  • クロスプラットフォーム互換性: さまざまな種類のサーバーで動作し、サポートされます
  • ページ読み込みへの影響が最小限: クライアント側で ping を実行することにより、初期ページ読み込みは影響を受けません。
  • 実装の単純さ:コードは単純で、簡単に統合できます。

アップデート

提示されたソリューションでは、新しいブラウザーとの互換性の問題が発生する可能性があります。最新のアップデートと代替ソリューションについては、付属の GitHub リポジトリを参照してください:

[https://github.com/jdfreder/pingjs](https://github.com/jdfreder/pingjs)

以上がJavaScript は外部ライブラリを使用せずにサーバーに ping を実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。