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