当函数没有响应时调用另一个javascript函数

当函数没有响应时调用另一个javascript函数,javascript,Javascript,我有两个javascript函数 searchButtonClicked() hidemap() searchButtonClicked()将在body onload中调用 searchButtonClicked()有时没有响应。所以我想让它尝试执行5秒钟,如果它没有执行,我想调用hidemap() 请帮忙。提前谢谢。 乌迪 下面是函数 function searchButtonClicked() { if (inlocatorHubMode) { locatorHubSear

我有两个javascript函数

searchButtonClicked()
hidemap()
searchButtonClicked()
将在
body onload
中调用

searchButtonClicked()
有时没有响应。所以我想让它尝试执行5秒钟,如果它没有执行,我想调用
hidemap()

请帮忙。提前谢谢。 乌迪

下面是函数

function searchButtonClicked() {
    if (inlocatorHubMode) {
    locatorHubSearch();
    }
    else {
    search();
    }
}

我假设searchButtonClicked是一个AJAX请求

如果是这种情况,您可以使用setTimeout和回调的组合来实现所需的功能

var searchTimeout = null;

function searchButtonClicked(){
  searchTimeout = setTimeout(requestFailed, 5000);

  //If you're using jQuery, something like this
  $.ajax({
    url: "service.php",
    success: requestSuccess
  });

  //If you're not, something like this
  xmlhttp.onreadystatechange=(function(){
    if(xmlhttp.readyState==4 && xmlhttp.status==200){
      requestSuccess();
    }
  });  
}

function requestSuccess(){
  clearTimeout(searchTimeout);
  //Yay! It succeeded!
}

function requestFailed(){
  hideMap();
  //It didn't unfortunately =[
}

编辑:编辑的目的是说它实际上不是AJAX请求。把它留在这里,以防对某人有用。

javascript中有一个函数

window.setTimeout("javascript function",milliseconds);
此函数等待指定的毫秒数,然后执行指定的函数

在您的情况下,可以在函数开始时设置超时。
因此,在指定的毫秒之后,您的第二个函数将执行单击的
searchbutton
在内部做什么?Ajax?它从外部服务搜索数据并返回结果数组。您应该了解为什么有时候searchButtonClicked()不响应,而不是在失败时加载另一个函数。因此,请向我们展示该函数。否则我们帮不上忙you@Jehanzeb.Malik这实际上不在我的范围之内。我只是从函数中得到一个结果。我需要做的是,我必须让它执行几秒钟,如果没有,调用另一个函数。谢谢你的回答@Dolondro。但是我的函数没有Ajax调用。我在我的问题中增加了这个函数。请看一看。再次感谢您的帮助。我如何设置等待时间??与5秒循环一样,setTimeout应该读取
setTimeout(requestFailed,5000)
,表示它将持续5秒。编辑。