0

PhoneGap 2.9.0 (ビルド付き) を使用して、Web サイトからファイルをダウンロードし、Android デバイスの SD カードに保存しています。

複数のファイルをダウンロードし、これらの要求がすべて正常に完了したことを確認するソリューションを探しています。

これはjQuery.Defferedを使用することで可能であると言われましたが、これをコードでまだ使用しておらず、理解するのに苦労しています。

既存のコードは理論的には正常に動作しますが、アレイ内の最後のダウンロードが正常にダウンロードされたときにのみチェックしますが、最後のダウンロードが他のダウンロードよりも先に正常に返されることがあります。

私のコードは以下のようなものです:

var ft = new FileTransfer();
var online = [
    'http://google.com/img/1.jpg', 
    'http://google.com/img/2.jpg',
    'http://google.com/img/3.jpg'
];
var sdcard = 'file:///storage/sdcard0/';

$.each( online, function(k,v) { 
    ft.download(
        online[k],
        sdcard,
        win,
        fail
    );
}

var win = function(success, counter){
   // check if counter is last element in array

       // redirect user to page if last element
}

var fail = function(error){
  console.log(error);
}
4

2 に答える 2

0

これはjquery whenの例です。http://api.jquery.com/jQuery.when/

簡単なコード (「いつ」を説明するためのものではありません)

ここにフィドルがあります:http://jsfiddle.net/v34ra/

そして when().done() を使った簡単なコード:

$('button').on('click', function(){  

    $.when(

        $('div').each( function(){
            $(this).html(  $(this).attr('attriba')  );
        }  )

    ).done( function(){alert('fin');} );

});
于 2013-09-17T12:13:00.333 に答える