-2
var showBoth = function(str, x) {
       showgrade(str, x);
       showsize(str, x);
     }

私はこれを試しました:

var showBoth = function(str, x) {`enter code here`
        showgrade(str, x);
        setTimeout(function(){showsize(str, x)},500);
     }

ただし、時間settimeshowgradeかかりすぎると停止して実行されshowsizeます。

showsize実行が終了したときに実行する方法showgradeは?

これが私の全機能です

 function showsize(str,x)
    {
        if (str=="")
          {
          document.getElementById("txtHintsize"+x+"").innerHTML="";
          return;
          } 
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById("txtHintsize"+x+"").innerHTML=xmlhttp.responseText;
            }
          }

        xmlhttp.open("GET","Function/ShowSize.php?q="+str,true);
        xmlhttp.send();
    }
    function showgrade(str,x)
    {
        if (str=="")
          {
          document.getElementById("txtHintgrade"+x+"").innerHTML="";
          return;
          } 
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById("txtHintgrade"+x+"").innerHTML=xmlhttp.responseText;
            }
          }

        xmlhttp.open("GET","Function/ShowGrade.php?q="+str,true);
        xmlhttp.send();
    }
     var showBoth = function(str, x) {
        showgrade(str, x);
        setTimeout(function(){showsize(str, x)},500);
     }
4

2 に答える 2

1

showgrade関数を次のxmlhttp.onreadystatechangeように変更します

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById("txtHintgrade" + x + "").innerHTML = xmlhttp.responseText;
    }
    showsize(str, x);
}

AJAX リクエストが応答を返すと、onreadystatechange関数が呼び出され、関数の終了がマークされます。したがって、showsizeその関数から呼び出すだけです。

于 2013-10-12T11:23:11.740 に答える