是否可以从Javascript ping服务器?我正在制作一个Web应用程序,要求我检查远程服务器是否在线。当我从命令行运行它时,我的页面加载速度达到了整整60秒(对于8个条目,它会随着更多线性线性扩展)。我决定在用户端进行ping操作。这样,我可以加载页面,让他们在浏览我的内容时等待“服务器在线”数据。如果有人对上述问题有答案,或者他们知道解决方案以保持我的页面加载速度快,我肯定会感激。
3 回答
不负相思意
TA贡献1777条经验 获得超10个赞
你可以试试这个:
在有或没有任何内容的服务器上放置ping.html,在javascript上执行如下操作:
<script> function ping(){ $.ajax({ url: 'ping.html', success: function(result){ alert('reply'); }, error: function(result){ alert('timeout/error'); } }); }</script>
温温酱
TA贡献1752条经验 获得超4个赞
Ping是ICMP,但如果远程服务器上有任何打开的TCP端口,则可以像这样实现:
function ping(host, port, pong) { var started = new Date().getTime(); var http = new XMLHttpRequest(); http.open("GET", "http://" + host + ":" + port, /*async*/true); http.onreadystatechange = function() { if (http.readyState == 4) { var ended = new Date().getTime(); var milliseconds = ended - started; if (pong != null) { pong(milliseconds); } } }; try { http.send(null); } catch(exception) { // this is expected }}
添加回答
举报
0/150
提交
取消