0

我漫长而持久的网站即将完成。在查看一些测试时,我注意到我的uploadify 在除firefox 之外的所有浏览器上都运行良好,而且这只发生在MAC 机器上的firefox 上。这很奇怪,但文件实际上上传得很好,只是加载进度条百分比没有增加并保持在 0 直到脚本实际完成。请见鬼。所有浏览器的代码都是相同的,甚至可以在 IE 8 中运行。很奇怪,我在所有浏览器、pc 和 mac 上都试过了。

更新:

我仍然煞费苦心地试图让它发挥作用。我使用了 onUploadProgress 回调函数

'onUploadProgress' : function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {
                if(bytesUploaded > 10){
                    var test = "";
                }
                $('#progress').html(totalBytesUploaded + ' bytes uploaded of ' + totalBytesTotal + ' bytes.');
             } 

我试着看看它是否被调用。除了 bytesUploaded = 0 之外,我永远无法在调试器中调用它。由于某种原因,onUploadProgress 在此进度期间未启动。文件上传正常,但没有显示进度,这对用户来说是个问题。

我还试图深入研究 uploadify.js 文件的内部工作原理,以找出它在哪里进行上传过程,并且发生了同样的事情。下面是发生这种情况的代码。

function g(x,C,z){
                                                                                    var v=new Date();
                                                                                    var D=v.getTime();
                                                                                    var A=D-j.timer;
                                                                                    j.timer=D;
                                                                                    var y=C-j.bytesLoaded;
                                                                                    j.bytesLoaded=C;
                                                                                    var u=j.queue.queueBytesUploaded+C;
                                                                                    if(C > 100){
                                                                                        var TEST = "";
                                                                                    }
                                                                                    var F=Math.round(C/z*100);
                                                                                    var B=0;var w=(y/1024)/(A/1000);
                                                                                    w=Math.floor(w*10)/10;
                                                                                    if(j.queue.averageSpeed>0){
                                                                                        j.queue.averageSpeed=(j.queue.averageSpeed+w)/2
                                                                                    }else{
                                                                                        j.queue.averageSpeed=w
                                                                                    }
                                                                                    if(w>1000){
                                                                                        B=(w*0.001);
                                                                                        j.queue.averageSpeed=B
                                                                                    }
                                                                                    var E="KB/s";
                                                                                    if(B>0){
                                                                                        E="MB/s"
                                                                                    }
                                                                                    if(a.inArray("onUploadProgress",j.settings.skipDefault)<0){
                                                                                        if(j.settings.progressData=="percentage"){
                                                                                            a("#"+x.id).find(".data").html(" - "+F+"%")
                                                                                        }
                                                                                        else{
                                                                                            if(j.settings.progressData=="speed"){
                                                                                                a("#"+x.id).find(".data").html(" - "+F+E)
                                                                                            }
                                                                                        }
                                                                                        a("#"+x.id).find(".uploadifyProgressBar").css("width",F+"%")
                                                                                    }
                                                                                    if(j.settings.onUploadProgress){
                                                                                        j.settings.onUploadProgress(x,C,z,u,j.queue.uploadSize)
                                                                                    }
                                                                                }

我试图在设置变量 F 的位置附近放置断点。该函数仅在为 0 时在调试器内调用,我认为可能是因为到那时文件已经上传,但也尝试在代码中放入 if 语句,仅当上传的字节数大于 100 时才停止调试器,即没那么多,但似乎由于某种原因,在启动 0 字节后它没有被调用。

我没有在控制台中看到与 uploadify 相关的任何错误。请见鬼!!

4

0 回答 0