2016-08-16 11 views
-2

$ iが10になるまでwhileループでURLパラメータを増加させるコードがあります。これが起きると、最大10個の数字が表示されます($ iが停止すると各結果を1つずつ表示

この問題は、$ iが10に等しいときにのみ1になること、 2、3、4、5、6、7、8、9 - ($ iが10になるのを待つのではなく)数字を表示する必要があります。

<div id="here"></div> 

<script> 
$(document).ready(function(){ 
     $.ajax({ 
      type: "POST", 
      url: "test2.php", 
      success: function(data) { $("#here").html(data); } 
     }); 
}); 
</script> 

test2.php:

while($content = file_get_contents('https://www.example.com?id='.$i)) { 
    if($i !== 1000000) { 
     echo $i; 
    }else{ 
     break; 
    } 
    $i++; 
} 

私はしかし、それはで1000000に1を書くことは永遠に私を取ると、以下のコードは私の問題を解決することが有用であることを見出しましたarr

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 

$({}).queue("ajax", $.map(arr, function(item, i) { 
    return function(next) { 
    return $.ajax({ 
       type: "POST", 
       url: "test2.php", 
       data: {n:item} 
      }) 
      .then(function(data) { 
      $("#here").append(data); 
      next(); 
      }); 

    } 
})).dequeue("ajax") 

test2.php:

if (isset($_POST["n"])) { 
    $content = file_get_contents("https://www.example.com?id=" . $_POST["n"]); 
    echo $content 
} 

答えて

0

なぜループを作成してその配列を取得できないのですか?

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9.......]; 

私はこれが(質問)あなたの問題を解決していますが、ここで何かをリアしようとしていることを覚えておいてください...あなたは単純なループはあなたの時間を節約することを知っている必要がありませんことを知っています。

+0

私が述べたように、それは1000000 –

+0

なしまでのすべての方法を書くために永遠にかかるだろう...ちょうどチェックをこれは:https://jsfiddle.net/maky/b1excL3t/ – fernando

+0

私は1000000のようにループしなければならないし、ページdoesntのロード –

0

setIntervalを使用すると、このように1秒ごとにajaxを呼び出すことができます。

function getData(val) { 
    $.ajax({ 
    type: "POST", 
    url: "test2.php", 
    data: {n: val} 
    success: function(data) { 
     $("#here").html(data); 
    } 
    }); 
} 


var x = 1; // initial value 
var intervalID = setInterval(function() { 

    getData(x); 

    if (++x === 1000000) { // 10000000 is the last value 
    window.clearInterval(intervalID); 
    } 
}, 1000); //1000 milliseconds 
0

だけではなく、不要な配列を作成するためのループシンプルを使用します。

for (var i = 1; i < 10; i++) { 
    $.ajax({ 
     type: "POST", 
     url: "test2.php", 
     data: { n: i}, 
     success: function(data) { 
      $("#here").html(data); 
     } 
    }); 
} 
関連する問題