как узнать, сколько времени /% осталось на document.ready? - PullRequest
0 голосов
/ 20 марта 2012

я обычно делаю

$('#load').show();
$(document).ready(function(){
    $('#load').hide();
});

где <div id="load"> имеет только анимированный GIF

но я немного подумал об улучшении и показывал индикатор прогресса

1009 * имеющий *

<div id="load"><div id="done"></div></div>

чтобы я мог, за время ожидания (я думаю)

var percent_done = how_do_i_figure_out(); /*  here is where i need help */
$('#done').width(percent_done);

Ответы [ 3 ]

5 голосов
/ 20 марта 2012

Это невозможно сделать!

У вас нет доступа к элементам, которые еще не отображены, так как вы узнаете, чего не хватает?!

1 голос
/ 20 марта 2012

Я бы просто использовал фальшивый индикатор прогресса.Вот пример.

http://jsfiddle.net/dM8Qp/1/

Невозможно узнать, сколько времени пройдет, прежде чем произойдет событие DOMready.

html

<div id="pb"></div>​

js

$("#pb").progressbar();
var preloader = $("<div />").css("height", "0px").animate({
    height: 95
}, {
    step: function() {
        //console.log(Math.ceil(parseFloat($(this).css("height"))))
        $("#pb").progressbar("value", Math.ceil(parseFloat($(this).css("height"))));
    },
    duration: 2000
});

$(document).ready(function(){
    preloader.promise().done(function(){
        $("#pb").add(preloader).remove();
    });
});

Обновлено за предложение Гдорона в комментариях.

0 голосов
/ 20 марта 2012

Слишком много переменных, чтобы правильно определить, сколько времени потребуется для загрузки.Некоторые из них не могут быть рассчитаны (например, скорость интернет-соединения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...