Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Загрузчик в HTML

Источник: www.webber.ru

Рассмотрим типичную ситуацию. Пользователь щелкнул на гиперссылке и браузер начал закачивать запрошенный ресурс. Предположим, что пользователь использует для подключения к Internet модем и эффективная скорость (то есть та скорость, с которой реально пересылаются данные) колеблется где-то около 20Кбит в секунду. Такой показатель для российских телефонных линий - дело обыкновенное. Так же предположим что объем закачиваемого файла равен 200Кб. Нехитрый подсчет показывает, что файл будет загружаться около 80 секунд.

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

Однако, начиная с 5 версии Internet Explorer предоставляет механизм, позволяющий частично решить эту проблему. Одно из поведений по умолчанию, поведение download, предоставляет метод startDownload. Методу startDownload передается два аргумента: адрес загружаемого ресурса и указатель на функцию, которая будет вызвана по завершению загрузки ресурса.

Теперь мы можем перехватить нажатие на гиперссылку и вызвать метод startDownload с адресом, указанным в гиперссылке. Одновременно мы можем вывести на страницу некое сообщение, предупреждающее пользователя, что идет загрузка большого файла. По завершении загрузки метод startDownload вызовет указанную функцию, которая и произведет переход на ресурс, указанный в гиперссылке. Данная техника демонстрируется в следующем листинге.

<html>
<head>
<title>Пример использования download</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  <style type='text/css'>
   #loadManager {behavior: url(#default#download);}
  </style>
  <script language='jscript'>
   function ready_go()
   {
    location.href = loaderManager.href;
   }
  </script>
 </head>
 <body>
  <a href='http://webber.ru/' id='loadManager'
     onclick='this.startDownload(this.href,ok_func);'>
 </body>
</html>

Может возникнуть казалось бы резонный вопрос: в чем смысл всех этих манипуляций, если в результате ресурс в конце концов все равно грузится по старинке. Все дело в том, что во второй раз ресурс загружается не по сети, а из кэша, что намного быстрее. Во вторых, небольшая модификация данного метода позволяет обойти проблему порванных гиперссылок. Так обнаружив, что метод startDownload не вызвал нашу функцию в течении 10 минут, можно сделать вывод, что файл загрузить не удалось. И вывести сообщение с извинением. Последнее будет выглядеть намного лучше, чем системное сообщение, что такой-то ресурс загрузить не удалось.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
308
26 июля 2006 года
Комаджу
850 / / 26.07.2006
Мне нравитсяМне не нравится
22 августа 2006, 10:40:36
Интересная фича. А можно где-то по-русски более подробно почитать о ней и о ее будущем?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог