首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过xhr的JQuery ajax进度

通过xhr的JQuery ajax进度
EN

Stack Overflow用户
提问于 2014-03-19 18:31:23
回答 3查看 76K关注 0票数 28

我正在尝试捕获ajax请求的进度。我从这个链接http://www.dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5/关注文章。

它没有像预期的那样工作。据我所知,id为progressCounter的Div中应该包含%,但在我的例子中什么都没有发生。有什么帮助吗?

在我看来,if (evt.lengthComputable) {不能在XHR中工作

JSFIDDLE: http://jsfiddle.net/bababalcksheep/r86gM/

HTML:

<div id="progressCounter"></div><br>
<div id="loading">Loading</div><br>
<div id="data"></div>

JS:

var progressElem = $('#progressCounter');
var URL = "https://api.github.com/users/mralexgray/repos";
$("#loading").hide();
// write something in #progressCounter , later will be changed to percentage
progressElem.text(URL);

$.ajax({
    type: 'GET',
    dataType: 'json',
    url: URL,
    cache: false,
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.responseText);
        alert(thrownError);
    },
    xhr: function () {
        var xhr = new window.XMLHttpRequest();
        //Download progress
        xhr.addEventListener("progress", function (evt) {
            if (evt.lengthComputable) {
                var percentComplete = evt.loaded / evt.total;
                progressElem.html(Math.round(percentComplete * 100) + "%");
            }
        }, false);
        return xhr;
    },
    beforeSend: function () {
        $('#loading').show();
    },
    complete: function () {
        $("#loading").hide();
    },
    success: function (json) {
        $("#data").html("data receieved");
    }
});
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22502943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档