下载图片随机错误

时间:2013-01-09 20:01:43

标签: android cordova

我有以下代码:

function download_img(imgToDownload, imgToRemove){
            var url = remote_url+imgToDownload; // image url
            root_path   = get_root_path();
            var flag    = "working";
            var flag_delete = false;
            var imageToDownloadPath = root_path + "/" + imgToDownload; // full file path
            var imageToRemovePath = root_path + "/" + imgToRemove; // full file path                        
            try{                 
                var fileTransfer = new FileTransfer();
                fileTransfer.download(url, imageToDownloadPath, 
                    function () {
                        if(imgToRemove != "" && imgToRemove != null){
                            var entry = new FileEntry("foo", imageToRemovePath);
                            entry.remove(function (){alert("fine");flag_delete = true;}, function (){alert("marron");flag_delete = true;});
                        }
                        else{
                            flag_delete = true;
                        }
                        flag    = "done";
                    }, 
                    function (error) {
                        flag    = "done";
                        flag_delete = true;
                    }
                );
            }catch(error){
                alert("Error capturado: "+error.message);
            }
            while(flag=="working" && !flag_delete){
                try{
                    setTimeout(
                        function() {
                            /* Código */
                        },
                        300
                    );                  
                }
                catch(error){
                    alert("Error en el bucle: " + error.message);
                }

            }
        }

我在下载显然似乎是同步冲突的文件时遇到了问题,我的意思是,在下载文件之前看起来有些事情正在执行。

我使用了两个标志,以确保在下载文件之前不要继续(如果需要,将删除旧文件)。这个想法是在动作完成时更改标志的值,并使代码保持循环等待。

此代码给出的结果如下:

  • 似乎永远不会输入成功的fileTransfer.download sucess方法(我使用了一个从未触发过的警报),即使第一个文件正确下载也是如此。

  • 标志永远不会更改,因此代码会一直停留在循环中,并且不会继续下载其他文件。

我认为这可能是一个非常基本的jQuery行为,但我只是从这些技术开始,我有点迷失。如果有人能给我一些线索,我会非常感激。

谢谢!

0 个答案:

没有答案