为什么这段代码不起作用?Javascript

why isn't this code working? Javascript

本文关键字:不起作用 Javascript 代码 段代码 为什么      更新时间:2023-09-26

JS :

  function loadprice(){
        $.getJSON('http://domain.com/pulsa/data.php',
            function(json){
            $("#pricebtcbuy").append(json.price.btcbuy);
            $("#pricebtcactu").append(json.price.btcactu);
            $("#pricebtcsell").append(json.price.btcsell);
            $("#pricedlrbuy").append(jsonprice.usdbuy);
            $("#ppsaldo").append(json.price.paypal);
            $("#pricedlrsell").append(json.price.usdsell);
});
setTimeout("loadprice()",5000
);

JSON 文件{ "price": [ { "btcbuy": "Rp. 2.927.990,-", "btcactu": "", "btcsell": "Rp. 2.784.000,-", "usdbuy": "Rp. 12.853,-", "paypal": "1.00", "usdsell": "Rp. 12.223,-" } ] }

有谁知道这里出了什么问题?Javascript ??谢谢:D结果不是显示X_X

正确缩进和格式化代码是有价值的。您错过了 loadprice 上的结束大括号。

function loadprice () {
  $.getJSON('http://domain.com/pulsa/data.php', function (json) {
    $("#pricebtcbuy").append(json.price.btcbuy);
    $("#pricebtcactu").append(json.price.btcactu);
    $("#pricebtcsell").append(json.price.btcsell);
    $("#pricedlrbuy").append(jsonprice.usdbuy);
    $("#ppsaldo").append(json.price.paypal);
    $("#pricedlrsell").append(json.price.usdsell);
  });
}

另外,您是否尝试每 5 秒运行一次?或者您是否尝试在最初调用后的 5 秒后运行它?

如果要在 5 秒后调用它,则需要在函数定义之外调用setTimeout。在这种情况下,您也不需要函数名称后的括号。

setTimeout(loadprice, 5000);

这也行得通,希望它能区分调用函数和传递对象。

setTimeout(function () { loadprice(); }, 5000);

如果您想每 5 秒运行一次,您可以使用 setInterval .但如果这是你的愿望,有更好的方法可以做到这一点。

setInterval(loadprice, 5000);

更好的方法是利用承诺$.getJSON回报。这样它就不会每 5 秒运行一次,但每次请求完成时,Ajax 调用将在另外 5 秒内发生。如果响应需要超过 5 秒才能获得,这将避免潜在问题。

function loadPrice () {
  var jqxhr;
  jqxhr = $.getJSON('http://domain.com/pulsa/data.php', function (json) {
    $("#pricebtcbuy").append(json.price.btcbuy);
    $("#pricebtcactu").append(json.price.btcactu);
    $("#pricebtcsell").append(json.price.btcsell);
    $("#pricedlrbuy").append(jsonprice.usdbuy);
    $("#ppsaldo").append(json.price.paypal);
    $("#pricedlrsell").append(json.price.usdsell);
  });
  jqxhr.done(function () {
    setTimeout(loadPrice, 5000);
  });
}