Javascript 每秒刷新JS脚本值
我有一个脚本,它是从JSON数组中获取平均值的脚本Javascript 每秒刷新JS脚本值,javascript,json,Javascript,Json,我有一个脚本,它是从JSON数组中获取平均值的脚本 <p id="ticker"></p> <script> var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { myObj = JSON.parse(this.responseText); document.getElementById("ticker").innerHTML = myO
<p id="ticker"></p>
<script>
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
myObj = JSON.parse(this.responseText);
document.getElementById("ticker").innerHTML = myObj.average; };
xmlhttp.open("GET", "https://bitbay.net/API/Public/BTC/ticker.json", true);
xmlhttp.send();
</script>
我的问题是每隔几秒钟刷新一次。我浪费了一整天来做这件事。你能帮我一下吗?你能做到这一点吗:
<script>
window.setInterval(function(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
myObj = JSON.parse(this.responseText);
document.getElementById("ticker").innerHTML = myObj.average; };
xmlhttp.open("GET", "https://bitbay.net/API/Public/BTC/ticker.json", true);
xmlhttp.send();
}, 1000);
</script>
这将每秒1000毫秒运行一次函数。我建议您将其放入另一个函数中,使其更像:
<script>
window.setInterval(updateTicker(), 1000);
function updateTicker(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
myObj = JSON.parse(this.responseText);
document.getElementById("ticker").innerHTML = myObj.average;
};
xmlhttp.open("GET", "https://bitbay.net/API/Public/BTC/ticker.json", true);
xmlhttp.send();
}
</script>
只需使用setInterval=>{//code},就可以重复获取JSON了
setIntervalgetAvg,5*1000;//每5秒
函数getAvg{
var xmlhttp=新的XMLHttpRequest;
xmlhttp.onreadystatechange=函数{
myObj=JSON.parsethis.responseText;
document.getElementByIdticker.innerHTML=myObj.average;
};
xmlhttp.openGET,https://bitbay.net/API/Public/BTC/ticker.json符合事实的
xmlhttp.send;
}
一个简单的设置间隔就可以了
<p id="ticker"></p>
<script>
var ticker = document.getElementById("ticker"); // Cache that (faster)
function updateP(){
//... Do whatever
ticker.innerHTML = "..."
}
updateP(); // Update once immediately...
setInterval(updateP, 3000) // ...and then again every 3000ms
</script>
您可以使用以毫秒为单位以指定间隔调用函数或计算表达式的方法来实现此目的:
函数getValue{
var xmlhttp=新的XMLHttpRequest;
xmlhttp.onreadystatechange=函数{
如果xmlhttp.readyState==4&&xmlhttp.status==200{
var myObj=JSON.parsethis.responseText;
document.getElementByIdticker.innerHTML=myObj.average;
}
};
xmlhttp.openGET,https://bitbay.net/API/Public/BTC/ticker.json符合事实的
xmlhttp.send;
}
setIntervalgetValue,1000;
设置IntervarFunctionName,时间单位为毫秒。在setInterval中编写该函数。您能简单地将整个脚本包装在setInterval函数{//script},1000;中吗?1000=1秒。更改以满足您的需要。@blr,请参阅以了解如何消除解析异常。如果只显示示例,请至少解释该部分的作用what@LucaKiebel我为这个问题添加了评论,我想你没有看到。那么你至少应该引用你自己的话。
<p id="ticker"></p>
<script>
var ticker = document.getElementById("ticker"); // Cache that (faster)
function updateP(){
//... Do whatever
ticker.innerHTML = "..."
}
updateP(); // Update once immediately...
setInterval(updateP, 3000) // ...and then again every 3000ms
</script>