【问题标题】:jQuery ajax progressjQuery ajax 进度
【发布时间】:2013-08-02 22:47:28
【问题描述】:

当用户从我的 html5 前端保存一些数据时,我正在尝试创建一个进度更新模块。我有以下代码,但它似乎不起作用。我只是没有得到任何百分比完成值。任何想法为什么这可能会失败。

webservices 是 c# asmx 服务。

$.ajax({
    xhr: function()
    {
        if (window.ActiveXObject) {
            return new window.ActiveXObject("Microsoft.XMLHTTP");
        }
        else {
            var xhr = new window.XMLHttpRequest();
            xhr.upload.addEventListener("progress", function (evt) {
                if (evt.lengthComputable) {
                    var percentComplete = evt.loaded / evt.total;
                    //Do something with upload progress
                    console.log(percentComplete);
                    alert(percentComplete);
                }
            }, false);

            xhr.addEventListener("progress", function (evt) {
                if (evt.lengthComputable) {
                    var percentComplete = evt.loaded / evt.total;
                    console.log(percentComplete);
                    alert(percentComplete);
                }
            }, false);
            return xhr;
        }
    },
    type: "POST",
    url: "../service.asmx/SaveSession",
    cache: false,
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(DTO),
    dataType: "json",
    async:false,
    success: function (response) {
        result = response;
        IsDataDirty = false;
    },
});

【问题讨论】:

    标签: c# jquery web-services


    【解决方案1】:

    使用下面的代码:

       {
        xhr: function() {
          var xhr = $.ajaxSettings.xhr();
          if (xhr.upload) {
          xhr.upload.addEventListener('progress', function(e) {
             var percentage = event.loaded / event.total * 100;
                  //.....
             }, false);
          }
           return xhr;
          });
        }
    

    【讨论】:

    • 我使用的是 IE 10,但无法正常工作。变量百分比永远不会得到任何值。
    • @user1144596 显然event.loaded / event.total * 100 应该是e.loaded / e.total * 100
    • 运气不好,我在 IE 10 上。将 event.loaded 更改为 e.loaded。不工作。
    • 你让它工作了吗?如果有怎么办?我遇到了类似的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 2011-05-29
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多