我对Javascript很新,我有一个按钮,需要经常检查服务器是否处于活动状态。
我正在使用基于Java的Play框架。我已经有一个类ServerStatus,它返回服务是否健康,但我不知道如何将它链接到包含按钮的页面。
基本上,我想要的是,如果服务器出现故障,我希望禁用该按钮,以便在服务器不可用时用户无法使用它。
我看了一下Websockets,看起来非常复杂。我不确定是否有更简单的方法。
修改
使用Websockets:我有一个阅读,似乎我需要使用onmessage事件。我找到了一些示例代码,但我不知道如何将它放入我的(文档).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。
答案 0 :(得分:1)
我从这个similar question and answer
借来的基本代码在这里:
var isNotWorking = false;
var myFunc = function(){
$.ajax({url: "YOUR_URL_HERE",
type: "HEAD",
timeout:1000,
statusCode: {
200: function (response) {
//alert('Working!');
isNotWorking =false;
},
400: function (response) {
//alert('Not working!');
isNotWorking = true;
},
0: function (response) {
//alert('Not working!');
isNotWorking = true;
}
}
});
$('#mybutton').prop('disabled', isNotWorking);
doSetTimeOut();
}
var doSetTimeOut = function(){
setTimeout(function(){
myFunc();
}, 1000);
}
doSetTimeOut();
查看有效的JS小提琴here