Ход загрузки файла HTML5 - только на стороне клиента - PullRequest
7 голосов
/ 13 июля 2010

Я заметил, что новый объект XMLHttpRequest поддерживает событие onprogress в firefox. Можно ли использовать часть новых API файлов HTML5 для получения индикатора выполнения загрузки без каких-либо изменений на стороне сервера?

Ответы [ 2 ]

2 голосов
/ 13 июля 2010

Я верю в принципе да, хотя я еще не пробовал.

Проблема будет в том, что XMLHttpRequest#send() принимает строку Unicode и кодирует ее как UTF-8.Он не дает вам возможности отправлять чисто двоичные файлы, и большинство двоичных файлов, таких как изображения, не будут являться действительными последовательностями UTF-8.

Так что, вероятно, вы будете использовать то, что вызывает спецификация FileAPI«двоичная строка» (байты обрабатываются как ISO-8859-1, поэтому каждый charCodeAt соответствует байту), перекодированный в UTF-8.В итоге это будет примерно на 50% больше, чем загрузка простого файла.Стоит ли медленнее загружать, чтобы получить отчет о прогрессе?

(Боже, если бы только браузеры имели лучший пользовательский интерфейс, чтобы показать, как идет загрузка, ни одна из бесконечных бессмысленных скриптов / Flash / Java / ActiveX никогда не была бы бессмыслицейДавай, поставщики браузеров, это действительно большое всплывающее окно с информацией о прогрессе, слишком много, чтобы просить?)

0 голосов
/ 13 июля 2010

Да, теоретически, хотя я должен был бы подвергнуть сомнению точность, так как скорость Интернета обычно колеблется (более того, если вы не подключены).Скорее всего, он прыгнет вокруг.

Опять же, что является точным индикатором прогресса?Я хотел бы увидеть один в Windows, прежде чем я вижу один в Интернете!

...