我對JavaScript很陌生,我有一個按鈕需要經常檢查服務器是否處於活動狀態。Javascript:基於服務器狀態的禁用按鈕
我正在使用基於Java的Play框架。我已經有一個類ServerStatus返回一個服務是否健康,但我不知道如何鏈接到我的頁面,其中包含按鈕。
基本上,我想要的是,如果服務器宕機,那麼我希望按鈕被禁用,以便用戶不能在服務器不可用時使用它。
我看了一下Websockets,看起來非常複雜。我不確定是否有更簡單的方法。
編輯
使用的WebSockets:我有一個圍繞閱讀,似乎我需要使用的onMessage事件。我發現了一些示例代碼,但我不知道如何將它放入我的(document).ready函數中。
下面我有一些代碼:
$(document).ready(function(){
var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket;
var chatSocket = new WS("routes");//This does not seem to accept any @routes
var lastState = 'unknown';
chatSocket.onmessage = function(e){
var server_message = e.data;
//do something here about enabling and disabling
console.log(server_message);
}
});
function disable()
{
//disable all buttons
}
function enable()
{
//enable all buttons
}
我失去了對如何在這裏添加的WebSocket。
既可以使用的WebSockets,長輪詢,SSE(服務器端事件)等等。對這些技術進行一些研究,看看最適合你的是什麼。 – proulxs 2014-09-29 17:34:49
在上面的代碼中,變量在就緒函數結束時超出了範圍。所以這可能無法正確執行。我會建議將var聲明移到函數之外。示例:var WS = null。然後在文檔就緒函數中,可以在初始化之前刪除var。我不太熟悉web套接字,但從JS視圖來看,我至少會將var聲明提升到一個水平。 – 2014-09-30 14:43:37