Получите процент загрузки страницы с помощью javascript?

Я пишу приложение для iphone и должен показать индикатор выполнения, который показывает ход загрузки веб-страницы. Я хочу вставить функцию JS на эту страницу, и как только я ее вызову, она даст мне ход загрузки (сколько байтов было загружено и общий размер). Возможно ли это?

спасибо

4 ответов


нет, это невозможно. Вы можете эмулировать его, разбивая свою страницу на маленькие кусочки и загружая ее один за другим с запросами ajax, но я не думаю, что это стоит того.

еще одна идея-поместить маленькие кусочки скрипта, такие как

<script>percentage += 10; updateProgressBar();</script>

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


Я не думаю, что это возможно с помощью Javascript, и если страница не очень большая, я не понимаю, зачем вам это нужно. Если у вас есть много изображений на странице, это может быть возможно, чтобы сказать, сколько из них полностью загружены.

Edit: я нашел этой, это похоже на то, что ты хочешь сделать.

Edit 2: And этот ответ на SO.


Как вы знаете, какой процент HTML загружается Safari? Javascript из того, что я знаю о 1.7, никогда не может знать об этом. Если бы это сделали гораздо более сложные загрузчики для Gmail и множество приложений Google. Вы можете делать очень грубые оценки, вводя скрипты и элементы в DOM программно, но это много усилий для небольшой выгоды.

лучшее, на что вы можете надеяться, это анимированный GIF, который работает как долго вы оцениваете страницу для загрузки в наихудший сценарий. Или более простое решение-просто использовать throbber, песочные часы или Полюс парикмахера.


<html>
<head>
</head>
<body>
<script type="text/javascript" type="javascript">
var percent=0;

function curpercent(){
    //TODO : show percent : $("#lblpercent").html(percent + "%");
    if (percent <=100) {
        curpercent();
    }

}

curpercent(); //call curpercent function when page download this line, coz, browser always download your page line by line.

</script>

text body 1
<script type="text/javascript" type="javascript">
percent=10;
</script>

text body 2
<script type="text/javascript" type="javascript">
percent=20;
</script>

...

text body 10
<script type="text/javascript" type="javascript">
percent=100;
</script>

</body>
</html>