2017-09-04 91 views
1

我想在我的网站(只是一个初学者)合并财务数据 我跟着一个YouTube的纪录片,使用一些Java脚本从本地机器查询一台服务器。YQL财务数据与Java脚本不返回所有查询每次

该脚本应该将价格每日变化返回到4个不同的股份并显示它们。

它似乎起初工作,但现在我看到,它只返回一些价格(或偶尔没有),当我刷新它可能会显示一个不同的变化,但从来没有在同一时间所有4?

这里是HTML和Javascript

<script type="text/javascript"> 
var Base_URL = 'https://query.yahooapis.com/v1/public/yql?q='; 
var yql_query = 'select * from yahoo.finance.quote where symbol in ("YHOO","AAPL","GOOG","MSFT")'; 
var yql_query_str = encodeURI(Base_URL+yql_query); 
var query_str_final = yql_query_str + '&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys'; 

$.getJSON(query_str_final, function(data){ console.log(data); 
var changeValue = data.query.results.quote[0].Change; 
console.log(changeValue); 
document.getElementById("change").innerHTML = " Yahoo = " + changeValue; }); 

$.getJSON(query_str_final, function(data){ console.log(data); 
var changeValue = data.query.results.quote[1].Change; 
console.log(changeValue); 
document.getElementById("change1").innerHTML = " Apple = " + changeValue; }); 

$.getJSON(query_str_final, function(data){ console.log(data); 
var changeValue = data.query.results.quote[2].Change; 
console.log(changeValue); 
document.getElementById("change2").innerHTML = " Google = " + changeValue; }); 

$.getJSON(query_str_final, function(data){ console.log(data); 
var changeValue = data.query.results.quote[3].Change; 
console.log(changeValue); 
document.getElementById("change3").innerHTML = " Microsoft = " + changeValue; }); 

</script> 

有什么想法?

+0

是否所有的console.logs显示正确的数据被返回? –

+0

我认为所以不是全部在同一时间。除了名称改变的雅虎外 – Brendan

回答

0

尝试类似这样的方式,其中changeValue1,2,3 etc每个都有一个稍微不同的变量名称,并且在过程完成时完成html更改。

$.getJSON(query_str_final, function(data){ console.log(data); 
changeValue1 = data.query.results.quote[1].Change; 
console.log(changeValue); 
}).done(function(){ 
    document.getElementById("change1").innerHTML = " Apple = " + 
changeValue1;}); 

注意:这使changValue1变量全局,这不是最好的,但是用于测试。