buat loop tunggu sampai pass sebelumnya selesai

<script type='text/javascript'>
function pageLoad(links,site)
{
var links = links.split(","); 
for (i = 0; i < links.length; i++) { 
    var link = links[i]
    $('#info'+(i+1)).html('Processing');
    setTimeout($.post( 
         "downloadlinks.php",
         { link: link, site: site, iter:i},
         function(data) {
            if(date == "ok")
            {
                $('#info'+(i+1)).html('Finished');
            }else
            {
                $('#info'+(i+1)).html('Failed');
            }
         }), 10000);
    }
 }
</script>

halo, ini skrip yang saya buat, tetapi saya tidak ingin skrip ini memposting setiap pass secara bersamaan, saya perlu menunggu hingga pass sebelumnya selesai.

Bagaimana saya bisa melakukan ini?

Mat


person Matt Moseley    schedule 22.11.2014    source sumber
comment
Jika Anda menggunakan jQuery, harap perbarui tag Anda.   -  person j08691    schedule 22.11.2014


Jawaban (1)


Gunakan cara rekursif seperti ini alih-alih loop..

<script type='text/javascript'>
function pageLoad(links,site)
{
var links = links.split(","); 
var i=0;
postNow();
function postNow() { 
    var link = links[i]
    $('#info'+(i+1)).html('Processing');
    $.post( 
         "downloadlinks.php",
         { link: link, site: site, iter:i},
         function(data) {
            if(date == "ok")
            {
                $('#info'+(i+1)).html('Finished');
            }else
            {
                $('#info'+(i+1)).html('Failed');
            }
            i++;
            if (i<links.length){
                postNow();
            }
         });
    }
 }
</script>
person Sampath Liyanage    schedule 22.11.2014