SORU
11 NİSAN 2011, PAZARTESİ


Paralel olarak birden çok AJAX istekleri arayıp Deferreds bir dizi ileterek yanıtlarını işleme dolar.()

Burada ne yapmacık bir örnek: http://jsfiddle.net/adamjford/YNGcm/20/

HTML:

<a href="#">Click me!</a>
<div></div>

JavaScript:

function getSomeDeferredStuff() {
    var deferreds = [];

    var i = 1;
    for (i = 1; i <= 10; i  ) {
        var count = i;

        deferreds.push(
        $.post('/echo/html/', {
            html: "<p>Task #"   count   " complete.",
            delay: count
        }).success(function(data) {
            $("div").append(data);
        }));
    }

    return deferreds;
}

$(function() {
    $("a").click(function() {
        var deferreds = getSomeDeferredStuff();

        $.when(deferreds).done(function() {
            $("div").append("<p>All done!</p>");
        });
    });
});

"Bitti" ertelenmiş tüm görevleri tamamladıktan sonra görünür, ama $.when() Ertelenmiş nesneler. bir dizi nasıl bilmek görünmüyor. istiyorum "Bitti" dizisi Ertelenmiş bir nesne değil, DV önde gidiyor ve bunu varsayar. çünkü ilk yaşanıyor!

$.when(deferred1, deferred2, ..., deferredX) gibi işlev nesneleri uzatır biliyorum ama çözmeye çalışıyorum asıl sorun, yürütme de olacak kesin.

CEVAP
11 NİSAN 2011, PAZARTESİ


Değerler dizisi geçirmek içinherhangi birnormalde bunları ayrı parametreler olmak için beklediği işlevi bu durumda sana çok ihtiyacım var Function.prototype.apply, kullanın:

$.when.apply($, my_array);

http://jsfiddle.net/YNGcm/21/ bkz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • knopik96

    knopik96

    7 Mayıs 2011
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013
  • SuicideSheeep

    SuicideSheee

    8 Ocak 2012