我想从sinajs.cn获得实时的USDGBP数据。
位置(第三行代码)返回一个名为hq_str_GBPUSD的字符串数组。
现在下面的计算部分可以每1秒刷新一次,这没问题。但它只计算已经获得的信息。撤消信息部分(第三行)不刷新。
我如何修复它并获得实时USDGBP数据?谢谢。
<div id="scores">
<script type="text/javascript" src="http://w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="http://hq.sinajs.cn/list=GBPUSD" charset = "gb2312"></script>
<script type = "text/javascript">
var $scores = $("#scores");
var elements = hq_str_GBPUSD.split(",");
setInterval(function () {
var $rateP = (elements[1]/elements[3]-1)*100;
var $rate = $rateP.toFixed(2);
$("#scores").text("USDGBP:"+elements[1]+"Change:"+$rate+"%");
$scores.load("index.php #scores");
}, 1000);
</script>
</div>
答案 0 :(得分:1)
如果没有更好的原生方式(请参阅他们的API),您可以再次重新插入整个脚本,然后获取修改后的全局变量hq_str_GBPUSD
:
var scr = document.createElement('script');
scr.src = "http://hq.sinajs.cn/list=GBPUSD";
document.body.appendChild(scr);
让我们从带有模拟超时的片段中尝试:
var res = document.getElementById('r');
var hq_str_GBPUSD = "not fetched yet";
setInterval(function() {
res.innerHTML = hq_str_GBPUSD;
}, 1000);
setTimeout(function() {
var scr = document.createElement('script');
scr.src = "http://hq.sinajs.cn/list=GBPUSD";
document.body.appendChild(scr);
}, 3000);
<div id="r"></div>
有效!