函数总是返回相同的值

Function always returns the same value

本文关键字:返回 函数      更新时间:2023-09-26

我正在开发一个Windows 8应用程序,这是我第一次使用JavaScript。直到现在我还没有遇到什么大问题。下面的函数发出一个请求并获取一个JSON对象。比较我从浏览器和调试器获得的结果,第一个请求中一切正常。在此之后,服务器似乎总是返回相同的值,但情况并非如此

(function () {
    "use strict";

    function getPrice(currency) {
    var url;
    switch(currency) {
        case "usd":
            url = urlUSD;
            break;
        case "eur":
            url = urlEUR;
            break;
        case "gbp":
            url = urlGBP;
            break;
    }
    WinJS.xhr({ url: url }).then(
        function (response) {
            var json = JSON.parse(response.responseText);
            switch(currency) {
                case "usd":
                    console.log(json.data);
                    sharedData.usd = parseFloat(json.data);
                    console.log(sharedData.usd);
                    break;
                case "eur":
                    console.log(json.data);
                    sharedData.eur = parseFloat(json.data);
                    console.log(sharedData.eur);
                    break;
                case "gbp":
                    console.log(json.data);
                    sharedData.gbp = parseFloat(json.data);
                    console.log(sharedData.gbp);
                    break;
            }
        },
        function (error) { console.log(error); },
        function (progress) { }
    );
}

主叫函数

(function () {
"use strict";
function onTimer() {
    Exchanges.getPrices("usd");
    setTimeout(onTimer, 1000*60);
}
setTimeout(onTimer, 1000);
})();

处理缓存问题的技术有很多。在过去,我使用在url中添加时间戳参数的技术来解决这个问题。

var timestamp = Date.now();
url += '?' + 'timestamp=' + timestamp;