javascript - 为什么我的 HTML5 进度条没有随 jQuery AJAX 变化?

标签 javascript jquery ajax html

我正在尝试为我的 jQuery/AJAX 上传脚本制作一个进度条。脚本中的所有内容都工作正常,除了进度条的值永远不会改变。另外,在控制台中,percentComplete 变量始终仅为 1,并且记录两次。我尝试了所有能找到的不同方法,但似乎没有任何效果。进度条本身已添加到我的 div 中,但仅此而已。

$.ajax({
    beforeSend : function(){
        $(settings.message_div).html('<progress id="#upload-progress" value="0" max="100"></progress>');
    },
    xhr: function()
    {
        var xhr = new window.XMLHttpRequest();
        //Upload progress
        xhr.upload.addEventListener("progress", function(evt){
            if (evt.lengthComputable) {
                var percentComplete = evt.loaded / evt.total;
                //Do something with upload progress
                console.log(percentComplete);
                $('#upload-progress').val(percentComplete);
            }
        }, false);
        //Download progress
        xhr.addEventListener("progress", function(evt){
            if (evt.lengthComputable) {
                var percentComplete = evt.loaded / evt.total;
                //Do something with download progress
                console.log(percentComplete);
                $('#upload-progress').val(percentComplete);
            }
        }, false);
    return xhr;
     },
    type: "POST",
    dataType: "xml",
    data: formData,
    url: settings.ajax_url,
    processData: false,
    contentType: false,
    cache: false,
    success: function(xml){
        //console.log('ajax called');
    },
    error: function(xhr){
        $(settings.message_div).html(xhr.responseText);
        //console.log(xhr.responseText);
    }
});

这取自 here

最佳答案

onprogress 最近应该可以工作。您看到的教程有点过时了。 http://www.html5rocks.com/en/tutorials/file/xhr2/
http://www.w3.org/TR/progress-events/#introduction

xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
  var progressBar = $('#upload-progress').get(0);
  progressBar.value = (e.loaded / e.total) * 100;
  progressBar.textContent = progressBar.value; // Fallback for unsupported browsers.
}

关于javascript - 为什么我的 HTML5 进度条没有随 jQuery AJAX 变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644619/

相关文章:

javascript - 试图在我的 javascript 代码中理解 "this"(一件事有效,另一件事无效)

javascript - 根据显示的div自动扩展DIV的高度

javascript - 清空输出区域

jquery - 如何显示封面并将其放在特定位置?

php - jQuery/Ajax 联系表单不起作用

javascript - 使用 Phonegap 将 Canvas 图像保存为手机文件系统中的图像?

javascript - 如何在右键单击时禁用 'save image as' 选项?

javascript - 如何自动向表行添加时间戳并在更改时增加 tote#

javascript - jQuery 根本不工作

php - 如何使用 Woocommerce WC_AJAX 类