ホームページ > 記事 > ウェブフロントエンド > JavaScript はブラウザベースのネットワーク監視のためにサーバーに ping を送信できますか?
JavaScript からサーバーに ping を送信する: ブラウザベースのネットワーク監視
ネットワーク監視ツールとして ping を使用することは一般的な方法であり、多くの場合、リモートサーバーの可用性を確認するために使用されます。従来の ping コマンドはコマンド ラインから実行できますが、このアプローチにはページの読み込み時間の増加などの制限があります。
ページのパフォーマンスを最適化するには、ユーザー側で ping プロセスを実行することを検討してください。これにより、ユーザーがサーバーの可用性ステータスを待っている間、ページの読み込みが高速化されます。ただし、JavaScript からサーバーに ping を実行することは可能ですか?
JavaScript Ping の実装
提供されているソリューションでは、JavaScript の Image オブジェクトを利用してこれを実現しています。タスク。次のスニペットは、コア機能を示しています。
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); } }
スクリプトは、Image オブジェクトの非同期読み込み機能を利用します。イメージが正常に読み込まれると (サーバーが利用可能であることを示します)、onload イベントがトリガーされます。逆に、イメージのロードに失敗した場合 (サーバーが利用できないことを示します)、onerror イベントがトリガーされます。この方法は、サーバーの可用性を判断する機能を維持しながら、直接 ping コマンドに対するブラウザの制限を効果的に回避します。
代替ソリューションと注意事項
このソリューションは、次の環境で機能することが報告されています。サーバーの種類やポートがさまざまであるため、この実装の信頼性は異なる可能性があることに注意することが重要です。さらに、Chrome ではこのメソッドがサポートされなくなっている可能性があり、 net::ERR_NAME_NOT_RESOLVED エラーが発生する可能性があります。
これらの問題が発生した場合は、https://github.com で利用できるものなどの代替ソリューションを検討することを検討してください。 /jdfreder/pingjs.
以上がJavaScript はブラウザベースのネットワーク監視のためにサーバーに ping を送信できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。