0

私は2つのJavaScript関数を持っています

searchButtonClicked()
hidemap()

searchButtonClicked()で呼び出されbody onloadます。

searchButtonClicked()時々応答しない。だから私はそれを5秒間実行しようとし、それが実行されない場合はhidemap().

助けてください。前もって感謝します。ウディ

ここに関数があります

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

2 に答える 2

1

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リクエストではないという編集が行われました。誰かに役立つ場合に備えて、これをここに残しておきます。

于 2013-02-13T11:56:34.663 に答える
0

JavaScriptには機能があります

window.setTimeout("javascript function",milliseconds);

この関数は、指定されたミリ秒数待機してから、指定された関数を実行します。

あなたの場合、関数の最初にタイムアウトを設定できます。指定されたミリ秒後に、2 番目の関数が実行されるように

于 2013-02-13T12:33:26.117 に答える