函数始终返回相同的值

时间:2013-04-26 21:10:41

标签: javascript windows microsoft-metro winjs

我正在使用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);
})();

1 个答案:

答案 0 :(得分:0)

有许多技术可以处理缓存问题。我已经使用了向url添加timestamp参数的技术来解决这个问题。

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