Получите процент загрузки страницы с помощью 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>