【问题标题】:Delay when checking server status. With jquery检查服务器状态时延迟。用 jquery
【发布时间】:2012-11-11 18:49:40
【问题描述】:

我有一个项目需要检查我的应用程序的服务器是否仍然在线。 经过长时间的搜索,我找到了一个有效的脚本。但并不完美。当我从服务器上拔下网线时,我的应用程序需要 15 秒才能识别出服务器已关闭。

脚本查找文件 ping.html,出于缓存原因,我认为我需要将随机变量放在它后面:p

有人知道如何解决延迟问题吗?

function ping(){
           $.ajax({ 
           cache: false,
              url: 'ping.html?myRand=' + guid(), 
              success: function(result){ 
                 $('.conmessage').hide(); 
                 enable();

              },     
              error: function(result){ 
                  $('.conmessage').show();  
                  disable();
              }
           });
        }

    function s4() {
           return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
    }

    function guid() {
           return s4()+s4()+"-"+s4()+"-"+s4()+"-"+s4()+"-"+s4()+s4()+s4();
    }   

【问题讨论】:

  • 仅供参考,您的 URL 中不需要大量随机数,因为它只需要在这台计算机上是唯一的。事实上,只使用从当前时间派生的数字更万无一失,也简单得多。
  • 同意...只要您使用 UTC 时间,时间将永远是唯一的

标签: javascript jquery ajax file status


【解决方案1】:

我猜你应该在你的 ajax 调用中使用 timeout 属性(以毫秒为单位):

$.ajax({ 
              cache: false,
              url: 'ping.html?myRand=' + guid(), 
              timeout: 1000,
              success: function(result){ 
                 $('.conmessage').hide(); 
                 enable();

              },     
              error: function(result){ 
                  $('.conmessage').show();  
                  disable();
              }
           });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-17
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多