为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以从Javascript ping服务器?

是否可以从Javascript ping服务器?

神不在的星期二 2019-07-23 10:35:23
是否可以从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>


查看完整回答
反对 回复 2019-07-23
?
温温酱

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
  }}


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 917 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信