PHP请求时间

时间:2017-03-28 22:11:24

标签: javascript php

我正在编写程序以在php中生成随机数,将其返回到网页并将其绘制在图表上。我已经调试了一下,并注意到当我调用请求函数时,网页会通过其余的调用函数,然后再使用从PHP返回数据。我需要从请求中获取数据并将其返回给调用者,然后继续使用从请求中收到的数据。

这是调用者函数在控制台中跟踪的部分:

function plotData(dataSet) {

    var x = xScale+20; // 20 = margin length
    var y = 260;    //origin of graph

    getRequest();
    console.log("x = "+x);
    context.beginPath();

    x=x+xScale; //Move along the xAxis 

    console.log("dataSet = "+dataSet[0]+", "+dataSet[1]); 
    ...
}

这是我的PHP请求:

function getRequest()
{
    var request;
    if (window.XMLHttpRequest) 
    { // Mozilla, Safari, IE7+ ...
      request = new XMLHttpRequest();
    } 
    else if (window.ActiveXObject) 
    { // IE 6 and older
      request = new ActiveXObject("Microsoft.XMLHTTP");
    }   
    request.onreadystatechange = function()
    {   
      console.log('onReady');
      if (request.readyState === XMLHttpRequest.DONE)
      {
        if (request.status === 200)
        {
          random = request.responseText;
          random = parseInt(random);
          random = random/100;
          random = random.toFixed(2);
          console.log("random = " +random);
          data[1] = random;
          console.log("data = "+data[0]+", "+data[1]);
        }
        else
        {
          alert ('There was a problem with the request');
        }
      }
    }       
    request.open("GET", "external.php", true);
    request.send();     
}

最后是控制台日志:

onReady
x = 31.21951219512195
dataSet = 10, 10
onReady (x3)
random = 10.25
data = 10, 10.25

如您所见,该程序在从plotData()调用函数之前调用getRequest()中的所有console.log函数。

这是有问题的,因为在我继续getRequest()之前,我需要从plotData()获取信息。

我刚才想到的一个可能的解决方案是创建一个在plotData()之后执行的第三个函数,它执行我需要它做的事情,但我觉得我应该能够用我拥有的函数来处理它。

有人可以在请求函数之前解释为什么它会通过调用函数吗?我如何修复它以等待请求函数完成,然后再向前调用?

0 个答案:

没有答案