2013-08-02 3 views
0

Я пытаюсь создать модуль обновления progree, когда пользователи сохраняют некоторые данные из моего внешнего интерфейса html5. У меня есть следующий код, но он не работает. Я просто не получаю никаких процентных значений. Любые идеи, почему это может быть неудачным.jQuery ajax progress

Веб-службы - это службы cmm 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; 
    }, 
}); 

ответ

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; 
     }); 
    } 
+0

Я использую IE 10 и не могу заставить его работать. переменный процент никогда не получает никакой ценности. – user1144596

+0

@ user1144596 Очевидно, что 'event.loaded/event.total * 100' должен быть' e.loaded/e.total * 100' – zsong

+0

пока не удался, я на IE 10. изменен event.loaded на e.loaded. Не работает. – user1144596