Показать сообщение отдельно
  #1 (permalink)  
Старый 17.07.2018, 12:15
Новичок на форуме
Отправить личное сообщение для iAmAir Посмотреть профиль Найти все сообщения от iAmAir
 
Регистрация: 23.05.2018
Сообщений: 2

Прогресс-бар для загрузки страницы ajax'ом
Добрый день! Хочу сделать прогресс-бар при загрузке страницы ajax'ом.
Код такой:
$.ajax({
      url: href,
      type: "POST",
      dataType: 'html',
      xhr: function() {
        var xhr = new window.XMLHttpRequest(); // получаем объект XMLHttpRequest

        xhr.addEventListener('progress', function(evt){ // добавляем обработчик события progress (onprogress)
          var contentLength;
          if (evt.lengthComputable) {
            contentLength = evt.total;
          } else {
            contentLength = evt.target.getResponseHeader('x-decompressed-content-length');
          }

          var percentComplete = Math.ceil(evt.loaded / contentLength * 100);
          console.log('Проценты' + percentComplete);
          console.log('Загружено' + evt.loaded);
          console.log('Всего' + contentLength);
          console.log(evt.lengthComputable)
        }, false);
        return xhr;
      },
      beforeSend: function() {
          $('html, body').animate({scrollTop: 0}, 500, 'swing');
          $('.preloader').addClass('preloader-active');
      },


Но в результате lengthComputable всегда false, а contentLength всегда 0, как и evt.total

Как получить размер страницы и высчитать процент загрузки в данном случае?
Ответить с цитированием