Javascript 可以 Ping 一個伺服器嗎?
建立 Web 應用程式時,有必要確定外部伺服器的可用性。雖然伺服器端腳本可以使用「ping」等命令輕鬆執行此任務,但 Javascript 在這方面的功能受到限制。
然而,出現了一種利用本機 Image 物件的巧妙方法。透過從目標伺服器載入圖像,Javascript 可以利用內建的資源獲取機制來確定伺服器可用性。
實作
以下程式碼片段說明了用於執行ping 的main 函數:
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()”方法來指示伺服器可用性。
優點
此技術有下列幾個優點:
更新
所提供的解決方案可能會遇到與較新瀏覽器的兼容性問題。有關最新更新和替代解決方案,請參閱隨附的GitHub 儲存庫:
[https://github.com/jdfreder/pingjs](https://github.com/jdfreder/pingjs)
以上是JavaScript 可以在不使用外部程式庫的情況下 Ping 伺服器嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!