当前位置: 首页 > 面试题库 >

xmlhttprequest在功能上无法正常工作

易阳云
2023-03-14
问题内容

有谁知道为什么upload.onprogress在单独的功能上不能正常工作?

代码工作正常(进度条缓慢移动):

        xhr.upload.onprogress = function(e) {
            if (e.lengthComputable) {
                progress.value = (e.loaded / e.total) * 100;
            }
        };

但是,如果我将其投入功能,它将无法正常工作:

xhr.upload.onprogress = uploadProgress(event);

function uploadProgress(e) {
    if (e.lengthComputable) {
        progress.value = (e.loaded / e.total) * 100;
    }
}

在第二个代码上,进度条在文件上传完成后直接跳到100%,而不是在上传过程中很好地移到100%

因此,如果我将功能放进去,我已经尝试了提供的解决方案,它实际上可以工作。有没有办法把它放在函数之外?

        function uploadFile(blobFile, fileName) {
            ...
            ...

            // Listen to the upload progress for each upload.
            xhr.upload.onprogress = uploadProgress;

            // Progress Bar Calculation why it has to be in uploadFile function..
            function uploadProgress(e) {
                if (e.lengthComputable) {
                    progress.value = (e.loaded / e.total) * 100;
                }
            }

            uploaders.push(xhr);
            xhr.send(fd);
        }

        //it does not work if I put it outside the function. is there anyway to do this?  
        function uploadProgress(e) {
             if (e.lengthComputable) {
                 progress.value = (e.loaded / e.total) * 100;
             }
        }

问题答案:

通过uploadProgress(event);调用函数本身,并将返回值xhr.upload.onprogress分配给,而不是将其分配为回调函数:

xhr.upload.onprogress = uploadProgress;


 类似资料:
  • 问题内容: 我正在尝试使用Java中的 Split 函数拆分字符串 它给了我结果 但是当我尝试以下代码时 它给了我 为什么Java split函数无法拆分以“ |”分隔的字符串 问题答案: String#split()方法接受a 而不接受a 。 因为 是元字符,在正则表达式中有特殊含义。 当您逃脱它时,它会起作用。 更新: 在java:OFFICIAL DOCS中处理特殊字符 。 附带说明: 在J

  • 问题内容: 我很难弄清楚这里出了什么问题: 例如, 输出。它应该输出6,因为长度看起来像这样:5-> 16-> 8-> 4-> 2-> 1 进行一些调试后,我看到正确返回了,但是递归中出了点问题。我不太确定 谢谢你的帮助。 问题答案: 在这两个块中,进行递归调用后不会返回任何值。您需要在递归调用之前先输入,例如。如果您没有明确声明,该函数将返回。 这样可以解决此问题,但是有一种方法可以使您的代码更

  • 问题内容: 我已经尝试解决这一问题了一段时间,但是我无法使其正常工作。当用户单击链接时,系统会要求他确认他要执行此操作。然后进行ajax调用。调用的脚本可以正常工作,并返回重定向到的字符串。 我在这里看到了几个关于window.location问题的帖子,但是它们都无法解决我的问题。 我的代码: 如果不这样做,我可以看到传递了正确的数据。例如/ user / homepage。但是,重定向尚未发生

  • 在windows上使用netbeans已经很久了,没有问题。在Debian上安装了它,它启动了,但大多数按钮没有响应(新项目/新文件...)。 这是使用终端发射时的结果。 Netbeans版本:8.2 OS:Parrot(debian OS的发行版)JDK版本:9.0.1 提前道谢。

  • 问题内容: 我正在使用codeigniter 3.1。我想使用ajax发布上传数据。 Ajax上传文件不起作用。但是,当我发布不带ajax的简单表单时,它工作正常。 我不知道为什么,但控制台没有错误。 的HTML JAVASCRIPT 控制器 问题答案: 问题之一是文件上传使用的机制与其他表单类型不同。这就是为什么没有为您完成工作的原因。其他答案建议使用javascript,而这个答案也可以。 的

  • 问题内容: 此功能在IE,Firefox和Chrome上均能完美运行,但在iPhone上,仅在单击时才能使用。单击页面(除了img以外的任何地方)都不会触发该事件。 HTML部分非常基础,不应成为问题。 有任何想法吗? 问题答案: 添加以下代码即可。 问题是iPhone不会引发点击事件。他们引发“触摸”事件。非常感谢苹果。他们为什么不能像其他所有人一样保持标准?无论如何,感谢Nico的提示。