2012-06-29 3 views
2

Я искал файл javascript большого размера/виджета (1.3 МБ) и хотел отобразить индикатор выполнения при его загрузке. Я знаю, что вкладка net watch netbug знает много этой информации, но мне хотелось бы что-то более легкое. Я наткнулся на этот сайт: http://blog.greweb.fr/2012/04/work-in-progress/Прогресс загрузки исходного файла Javascript?

, который почти достает меня, кроме того, что мне нужно загрузить файл, который я загружаю. Я не видел никаких слушателей в jScript-режиме jQuery при загрузке файла. Кто-нибудь знает, как получить доступ к загрузке исходных файлов?

Заранее благодарен!

ответ

8

Если вы используете getScript(), вы можете выполнить функцию, используя обратный вызов успеха, но это только тогда, когда скрипт завершил загрузку.

Я бы порекомендовал иметь изображение индикатора загрузки (вы можете найти много на http://ajaxload.info/) и спрятать его при загрузке скрипта.

This SO имеет пару других идей. Одно из решений приведено ниже:

var myTrigger; 
var progressElem = $('#progressCounter'); 
$.ajax ({ 
    type   : 'GET', 
    dataType  : 'xml', 
    url    : 'somexmlscript.php' , 
    beforeSend  : function (thisXHR) 
    { 
     myTrigger = setInterval (function() 
     { 
      if (thisXHR.readyState > 2) 
      { 
       var totalBytes = thisXHR.getResponseHeader('Content-length'); 
       var dlBytes  = thisXHR.responseText.length; 
       (totalBytes > 0)? progressElem.html (Math.round ((dlBytes/ totalBytes) * 100) + "%") : progressElem.html (Math.round (dlBytes /1024) + "K"); 
      } 
     }, 200); 
    }, 
    complete  : function() 
    { 
     clearInterval (myTrigger); 
    }, 
    success   : function (response) 
    { 
     // Process XML 
    } 
}); 

Это устанавливает интервал для вычисления прогресса путем загрузки загруженных байтов и суммарных байтов. Это может сработать для вас.

+0

Спасибо @sachleen, это то, что я сейчас делаю, я надеялся на что-то еще более похожее на то, что делает firebug. – Jonathan

+0

Я думаю, что это сработает для меня, спасибо огромное! Мне нравится, как работает myTrigger. – Jonathan

Смежные вопросы