2017-12-12 21 views

答えて

0

それははるかより良いが、内のすべてのデータを送ることであろう

var totalRev = 0; 
     $.ajax({ 
      type: "POST", 
      url: "cloudmobi.php", 
      data: {action: 'cloudmobi'}, 
      dataType:'JSON', 
      success: function(response){ 
       document.getElementById('cloudmobi').innerHTML = response.cloudmobi; 
       console.log(response.cloudmobi); 
       var cloudmobi = parseInt(response.cloudmobi); 
       console.log('CLOUDMOBI:'+cloudmobi); 
       totalRev += cloudmobi; 

      } 
     }); 
     $.ajax({ 
      type: "POST", 
      url: "mobusi.php", 
      data: {action: 'mobusi'}, 
      dataType:'JSON', 
      success: function(response){ 
       document.getElementById('mobusi').innerHTML = response.mobusi; 
       console.log(response.mobusi); 
       var mobusi = parseInt(response.mobusi); 
       totalRev += mobusi; 
       console.log('MOBUSI:'+mobusi); 

      } 
     }); 
     $.ajax({ 
      type: "POST", 
      url: "appnext.php", 
      data: {action: 'appnext'}, 
      dataType:'JSON', 
      success: function(response){ 
       document.getElementById('appnext').innerHTML = response.appnext; 
       console.log(response.appnext); 
       var appnext = parseInt(response.appnext); 
       totalRev += appnext; 
       console.log('APPNEXT:'+appnext); 

      } 
     }); 
     console.log('TOTAL:'+totalRev); 

私はここにAJAXを使用しての全体の目的があるので、高速その後、動的にデータをロードするサイトをロードするために非同期を使用したくありませんサーバー上で合計を行い、応答内の単一のプロパティーで送信できるように、単一の要求です。

何らかの理由でそれを行うことはできないと仮定すると、AJAX要求からすべての約束事を保存して、それらのすべてが完了して配列に値を追加した後にコードを実行することができます。次に、配列を合計することができます。このような何か:

var values = []; 
var promises = [ 
    $.ajax({ 
    // ajax settings... 
    success: function() { 
     values.push(parseInt(response.cloudmobi), 10); 
    } 
    }), 
    $.ajax({ 
    // ajax settings... 
    success: function() { 
     values.push(parseInt(response.mobusi), 10); 
    } 
    }), 
    // Nrequests... 
]; 

$.when.apply(this, promises).done(function() { 
    var sum = values.reduce(function(a, b) { 
    return a + b; 
    }, 0); 
    // work with sum here... 
}); 
+0

すべてのデータが悪いのAPIから取得され、ロード時間は、各APIの1つのPHPファイルを持つ、8秒を超えていたとajaxでデータを要求するのがはるかに高速です、私は今これを試してみます。 –

+0

これは機能します!ありがとうございました! –

1

jQueryの「when」あなたの問題を解決:

$.when(d1, d2).done(function (v1, v2) { 
    console.log(v1); // "Fish" 
    console.log(v2); // "Pizza" 
}); 
関連する問題