XMLHTTP请求:即使在节流限制下也有太多请求

时间:2018-04-28 10:27:15

标签: javascript xmlhttprequest

该项目是学校的家庭作业,我们在其中提出API请求以获取一些加密货币虚拟数据并在图表上显示结果。 图表绘制是使用Chart.js完成的,它对我重新发送的任何数据都可以正常工作。问题在于获取数据。

我有以下简单的代码定期执行请求:

setInterval(function fetchData() {
    console.log("BTC fetched");
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "https://obudai-api.azurewebsites.net/api/exchange    /btc", true);

    xhttp.setRequestHeader("X-Access-Token", secretKey);
    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.onreadystatechange = function () {
        if (xhttp.readyState === 4 && xhttp.status === 200) {
            var res = JSON.parse(xhttp.responseText);
            bitcoin = res["currentRate"];
        }
    };
    xhttp.send();

}, 15000);

我调用了3个此函数,每个函数用于不同的加密货币。

我查找了Chrome诊断程序,结果是

error1

error 2

error 3

注意:节流限制为10次/ 15秒。使用我的设置,我进行3次调用/ 15秒,或者,当处于调试模式时,6次调用/ 15秒。它肯定应该可以正常工作,但我不确定为什么会这样做。

更新:在评论的帮助之后,我终于可以显示响应消息了。它看起来像这样:

enter image description here

我提取当前日期。

现在使用超时和递归更新代码:

let timerId = setTimeout(function tick() {

    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "https://obudai-api.azurewebsites.net/api/exchange/btc", true);

    xhttp.setRequestHeader("X-Access-Token", secretKey);
    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.onreadystatechange = function () {
        if (xhttp.readyState === 4 && xhttp.status === 200) {
            var res = JSON.parse(xhttp.responseText);
            bitcoin = res["currentRate"];
            console.log(xhttp.responseText);
        }
    };
    xhttp.send();

    timerId = setTimeout(tick, 5000); // (*)
}, 5000);

0 个答案:

没有答案