2012-06-15 202 views
0

今天我的問題是知道是否有辦法知道什麼時候完成下載到本地設備的一些文件與查詢手機。 這是我的代碼,該代碼在插入用於循環如何知道何時下載完成?

for(var id=0; id<100; id++){ 
    var ft = new FileTransfer(); 
    var dlPath = DATADIR.fullPath + "/" +id+".jpg"; 
    ft.download(reconstitutedObject['immagine'], dlPath, function(e){ 
    }, onError); 
} 
window.location.href="settori.html"; 

我的問題是,這種代碼,使其正確文件的下載,但而我下載,它進入settori.html頁。 我需要等待所有的文件被下載,比去settori.html

+0

實際上在'FileTransfer.download()','成功'回調將被調用只有當下載完成並保存到給定的本地路徑 – dhaval

+0

請接受答案,如果它爲你工作,並提高你的接受率得到更好的答案。 – dhaval

回答

1

嘗試使用此代碼async.js

var i = 0; 
async.whilst(
    function() { return count < 100; }, 
    function (callback) { 
     count++; 
     var ft = new FileTransfer(); 
     var dlPath = DATADIR.fullPath + "/" +id+".jpg"; 
     ft.download(reconstitutedObject['immagine'], dlPath, function(entry){ 
      console.log("File downloaded to " + entry.fullPath); 
      callback(); // resume to next download  
     }, function(err){ 
      console.log("download error"); 
      callback(); // resume to next download 
     }); 
    }, 
    function (err) { 
     // all download complete 
     window.location.href="settori.html"; 
    } 
);  
+0

我嘗試過但不起作用 – Corallino

0

而在這個代碼的情況下:

$(data).find("vettura").each(function() { 
     var id=$(this).attr("id"); 
     var immag=$(this).find("immagine").first().find("grande").text(); 

     if(immag!=""){ 
       var ft = new FileTransfer(); 
       var dlPath = DATADIR.fullPath + "/" +id+".jpg"; 
       ft.download(immag, dlPath, function(e){ 
         //renderPicture(e.fullPath); 
         console.log("Successful download of "+e.fullPath); 
       }, onError);                 
     } 
});    

window.location.href="index.html"; 

有了這段代碼,應用程序會在文件下載時進入index.html。我需要確保當轉到index.html時下載所有文件。

0

試試這個

for(var id=0; id<100; id++){ 
    var ft = new FileTransfer(); 
    var dlPath = DATADIR.fullPath + "/" +id+".jpg"; 
    ft.download(reconstitutedObject['immagine'], dlPath, function(e){ 
    if(id == 99) { 
     window.location.href="settori.html"; 
    } 
}, onError); 
} 

這可以幫助你在一定程度上。