为了账号安全,请及时绑定邮箱和手机立即绑定

可视化数据的正确方法是什么?

可视化数据的正确方法是什么?

茅侃侃 2021-11-04 16:55:05
我正在尝试使用canvas.js!由于我希望从 API 动态获取数据,因此我创建了一个数组,然后将其传递到 json 对象中。所以我做了以下事情:    <!DOCTYPE HTML>    <html>    <head>      <script>    var xhr = new XMLHttpRequest(),    method = "GET",    url = "url";    xhr.open(method, url, true);    var data_array = [];    xhr.send();    window.onload = function () {        xhr.onreadystatechange = function () {            if (xhr.readyState === 4 && xhr.status === 200) {                var api_data = xhr.responseText;                var api_json = JSON.parse(api_data);                 var data = api_json["data"];                for(var i=0; i<data.length; i++) {                    dp_data = data[i];                    dp_median = dp_data["dp_median_price"];                    dp_date = dp_data["date"];                    var datearray = dp_date.split("-");                    var newdate = datearray[0] + ', ' + datearray[1] + ', ' + datearray[2];                    data_array.push({x:newdate, y:Number(dp_median)});                }                var chart = new CanvasJS.Chart("chartContainer", {                    title: {                        text: "title"                    },                    }                ]            });在这里,我无法读取 data_array。我如何在图表数据中传递它?上面的方法是行不通的!但是当我以静态方式传递数据时,它就起作用了!我的数组格式与静态信息示例相同!console.log(data_array) = 的输出    0:      x: "2019, 08, 29"      y: 1935    __proto__: Object
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

问题在于您如何尝试跟踪您的 ajax 请求。

onredystatechange事件在 xhr 请求执行期间多次触发。

0 - UNSENT 客户端已创建。open() 尚未调用。

1 - 已调用 OPENED open()。

2 - HEADERS_RECEIVED send() 已被调用,并且标题和状态可用。

3 - LOADING 下载 responseText 保存部分数据。

4 - DONE 操作完成。

只有当状态为 4 时,您才应该开始处理您的数据。

xhr.onreadystatechange = function () {


   if (xhr.readyState ==0 4 and xhr.status === 200) {


       //Process your data


查看完整回答
反对 回复 2021-11-04
  • 1 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信