Программные продукты
Компоненты загрузки — это программные продукты, которые предназначены для встраивания в веб-сайт с целью добавления к нему функциональности загрузки. Компоненты загрузки предназначены для замены стандартного механизма загрузки HTML 4. По сравнению с HTML4, компоненты загрузки имеют более удобный интерфейс и поддерживают более широкий спектр функций.
Загрузка HTML-файлов
Стандарт HTML4 поддерживает запрос данных с клиентского компьютера и их загрузку на сервер. Стандартный механизм для этого типа передачи данных — HTML-формы. [1] [2] С помощью HTML-форм файлы пользователя могут быть загружены с использованием тега <input/> с различными атрибутами. Этот метод позволяет разработчикам веб-сайтов реализовать базовую функциональность загрузки. Однако он имеет следующие недостатки:
- Загрузка нескольких файлов невозможна — пользователь может загрузить только 1 файл за раз.
- Ограниченный размер загружаемых данных — обычно невозможно отправлять файлы размером до десятков мегабайт (МБ) по протоколу HTTP.
- Оптимизация перед загрузкой файлов недоступна.
- Плохая визуализация — пользователь не видит никакой информации о ходе загрузки и предполагаемом времени загрузки.
- Предварительный просмотр выбранных файлов не поддерживается.
- Неудобный внешний вид и функциональность — способ, которым пользователь выбирает файлы для загрузки, неудобен.
Альтернативы загрузки HTML
Компоненты загрузки позволяют обходить ограничения загрузки HTML и недостатки, отмеченные ранее. Компонент загрузки — это плагин , который позволяет загружать файлы с клиента на сервер . Обычно компоненты загрузки разрабатываются сторонними компаниями и могут быть интегрированы с любым веб-сайтом на любой платформе . Веб-браузер пользователя отобразит встроенный компонент загрузки как часть веб-страницы. Компоненты загрузки могут быть созданы с использованием различных технологий: Flash , Silverlight , Java , ActiveX и HTML5 .
Сообщество W3C находится в процессе разработки стандарта HTML5, полная спецификация которого ожидается к 2014 году. [3] HTML5 должен поддерживать мультимедийный контент без каких-либо плагинов или компонентов. Для функциональности загрузки новые API HTML5 [4] предлагают широкий спектр новых функций, включая доступ к файловой системе клиента и динамическую генерацию запросов и обработку изображений.
Новые возможности HTML5 могли бы стать хорошей основой для внедрения компонентов загрузки со сложным пользовательским интерфейсом и возможностью загрузки любого объема данных. К сожалению, в настоящее время браузеры поддерживают эти возможности частично и по-разному, что является серьезным препятствием. Ситуация ухудшается, если вспомнить, что большое количество пользователей по-прежнему используют Windows XP (28%) [5] и устаревшие версии Internet Explorer (11%). [6]
Технологии создания компонентов загрузки
Компоненты загрузки могут быть разработаны на основе различных технологий, направленных на расширение функциональности браузера. В зависимости от технологии и ее особенностей компоненты загрузки могут поддерживать большую или меньшую функциональность, быть более или менее настраиваемыми и более простыми в использовании.
Ява
Java-апплеты — это компоненты, работающие в веб-браузере . Они разрабатываются в виде байт-кода Java . Апплеты поддерживаются большинством современных операционных систем и браузеров. Java-апплеты обладают высокой производительностью, аналогичной производительности встроенного программного обеспечения. Java-апплеты подписываются сертификатами безопасности, чтобы стать доверенным программным обеспечением, что позволяет автоматически распространять их с веб-сайта и устанавливать на клиентские компьютеры.
Вспышка
Компоненты загрузки могут быть реализованы как элементы управления Adobe Flash . Flash — это фреймворк для запуска мультимедийных приложений в Интернете. 24% всех веб-сайтов используют компоненты Flash, [7] а проигрыватель Flash установлен на 99% ПК с доступом в Интернет. [8] Flash — это кроссплатформенная и кроссбраузерная технология, которая позволяет компонентам загрузки Flash работать в различных браузерах, за исключением мобильных платформ .
Сильверлайт
Другой тип компонентов загрузки — Silverlight , технология Microsoft, требующая установки плагина для браузера. По своим возможностям он очень похож на Adobe Flash и поддерживается большинством современных браузеров и операционных систем. Существуют версии Silverlight для Windows и Mac OS X , а также версия для Linux под названием Moonlight . Silverlight — одна из основных технологий, используемых для разработки приложений Windows Phone .
HTML5
HTML5 — это новый стандарт HTML, разработанный для добавления поддержки мультимедиа в HTML. Он поддерживается в Windows, Mac OS X, Linux, iOS , Android и Windows Phone. Поскольку формат все еще находится в стадии разработки и некоторые функции, используемые для загрузки файлов, все еще не являются частью стандарта, компоненты загрузки HTML5 в настоящее время не распространены. Их поддержка ограничена подмножеством браузеров.
Поддержка HTML5 в браузерах настольных компьютеров
Поддержка HTML5 постоянно улучшается. Лучший охват функций HTML5 обеспечивается последними версиями Chrome , Firefox , Safari и Opera . Internet Explorer обеспечивает наименьшую поддержку. Internet Explorer 10 имеет меньшую поддержку, чем версии других браузеров; однако охват будет вдвое лучше, чем Internet Explorer 9. [ необходимо разъяснение ]
iOS 5 имеет достаточно высокий уровень поддержки HTML5, однако уровень ее поддержки остается ниже, чем у десктопных браузеров.
Windows Phone 7.5 «Mango» имеет слабую поддержку HTML5, что делает ее сопоставимой с отсутствием поддержки стандарта в настольном Internet Explorer 9.
Последняя версия Android 5.0 поддерживает гораздо больше функций HTML5, чем Windows Phone, но меньше, чем iOS.
Поддержка HTML5 в мобильных браузерах все еще находится в стадии разработки. [9] [10]
Функции, которые невозможны при стандартной загрузке HTML4
Компоненты загрузки привносят дополнительные функции и пользовательский опыт, которые невозможно обеспечить с помощью чистого HTML4.
- Индикатор выполнения
- Индикаторы выполнения используются для информирования пользователей о ходе загрузки. Компоненты загрузки поддерживают индикаторы выполнения, отображающие такие параметры, как имена файлов, размеры файлов, скорость загрузки и т. д.
- Загрузка нескольких файлов и папок
- Некоторые веб-сайты требуют поддержки загрузки нескольких файлов одновременно. Эта функция чрезвычайно важна для компонентов загрузки в социальных сетях , фотогалереях , файлообменниках и т. д. Стандартный подход HTML4 громоздок. Компоненты загрузки поддерживают загрузку нескольких файлов более гибким способом, например, позволяя более простой выбор файлов для загрузки одновременно из нескольких папок.
- Огромная загрузка файлов
- Загрузка большого объема данных всегда является проблемой, так как размер запроса может быть слишком большим для успешного завершения процесса загрузки, возможно, из-за медленного или нестабильного интернет-соединения. На стороне сервера могут быть ограничения на максимальный размер HTTP-запросов. Компоненты загрузки должны найти баланс между потребностями клиента с одной стороны и ресурсами и ограничениями сервера и канала с другой. В случае доставки больших файлов на серверные компоненты так называемая «загрузка фрагментами» делит файл на несколько частей (фрагментов) до начала процесса загрузки. Каждый фрагмент отправляется в ответ на один запрос; после того, как все фрагменты прибудут на сервер, исходный файл собирается заново.
- Отказоустойчивая загрузка
- В процессе загрузки могут возникнуть некоторые неожиданные проблемы или сбои, приводящие к сбою загрузки и повреждению файла. Для решения этих проблем компоненты загрузки имеют отказоустойчивые механизмы, такие как автоматическое возобновление процесса загрузки, отправка файлов по отдельности в одном пакете и загрузка фрагментов.
- Отправка дополнительных данных вместе с файлами
- Иногда бывает полезно отправлять дополнительные данные вместе с файлом, например, информационные описания или поля Exif / IPTC , или хэш-суммы , чтобы определить, был ли файл поврежден или поврежден в процессе загрузки.
- Одновременная загрузка
- Компоненты загрузки могут иметь функцию параллельной загрузки – отправка пакетов загрузки в нескольких потоках . В некоторых случаях процесс загрузки выигрывает за счет увеличения общей скорости загрузки, уменьшения времени загрузки и более эффективного использования ресурсов компьютера.
- Мгновенная загрузка
- Такой подход позволяет начинать загрузку файлов сразу после их добавления в очередь загрузки.
- Загрузить в облачное хранилище
- Компоненты загрузки могут загружать файлы в облачное хранилище .
- Перетаскивание
- Drag-n-Drop — это форма взаимодействия графического интерфейса пользователя и программы , которая включает выбор одного объекта и перетаскивание его на другой объект. Drag-n-Drop широко распространен, поскольку он помогает повысить удобство использования программы .
- Настраиваемый внешний вид
- Компоненты загрузки поддерживают настройку внешнего вида компонентов для вписывания их в дизайн веб-сайта с помощью таких настроек, как стили шрифтов, размеры, цвета или режимы просмотра, среди прочего.
- Локализация
- Как только компонент загрузки выходит на международный рынок, ему требуется поддержка перевода текстовых меток и сообщений интерфейса на другие языки. Обычно компоненты загрузки имеют настраиваемую поддержку для наиболее распространенных языков . Пользовательский интерфейс также может быть многоязычным. [ необходимо разъяснение ] Для некоторых языков, таких как иврит, процесс локализации включает не только перевод, но и переключение на вид справа налево.
- Проверка файлов на стороне клиента
- Для экономии ресурсов на стороне сервера компоненты загрузки могут применять проверку на стороне клиента к файлам, выбранным для загрузки в нескольких группах: типы файлов (которые могут быть выборочно определены или запрещены разработчиком), размер файла (который может быть установлен на минимально/максимально допустимые размеры) и размер изображения (который может иметь минимальный/максимальный размер, настроенный среди других параметров).
Загрузка изображения
Компоненты загрузки используются для загрузки изображений, поэтому существуют компоненты, которые имеют дополнительные функции для обработки изображений перед загрузкой.
- Изменить размер
- Фотографии, сделанные современными цифровыми камерами, имеют высокое разрешение , но большинству веб-сайтов необходимо изменять размер изображений для экономии пропускной способности. Компоненты загрузки позволяют автоматически изменять размер изображений и загружать их с исходным файлом или без него, или с миниатюрной копией для использования в качестве аватара и т. д.
- Повернуть
- Поворот изображения — очень важная функция для веб-сайтов, предоставляющая пользователям базовые возможности редактирования изображений. Изображения либо автоматически поворачиваются (на основе данных Exif), либо пользователю разрешается вручную поворачивать изображение.
- Обрезать
- Обрезка позволяет пользователям выбирать часть изображения, которую следует где-то сохранить или напечатать. Обрезка подразумевает удаление внешних частей изображения, чтобы выделить какой-либо объект на изображении или изменить соотношение сторон. [ требуется пояснение ]
- Водяные знаки
- Водяной знак — это текстовое сообщение или изображение, наложенное на оригинальное изображение, и используется для защиты интеллектуальной собственности или указания важной информации, такой как дата съемки изображения, текстовые комментарии или авторские права. Компоненты загрузки могут включать функцию добавления водяных знаков ко всем загруженным изображениям.
- Метаданные Exif/IPTC
- Изображения могут содержать метаданные в различных форматах, например Exif или IPTC.
- Поля Exif включают информацию с устройства, с которого был сделан снимок: параметры камеры, дату и место съемки, экспозицию, параметры объектива, данные GPS и другие. [11]
- Поля IPTC содержат более конкретные данные, касающиеся авторства изображения. [12] Для компонентов загрузки крайне важно сохранять исходные метаданные изображения в процессе загрузки.
- Измеритель качества
- Измеритель качества — это визуальный индикатор, показывающий качество изображения ( dpi , ширина, высота), который помогает пользователю решить, достаточно ли хорошо изображение для использования. Примером использования измерителя качества может быть веб-сайт фотопечати со встроенным компонентом загрузки, который уведомляет пользователей, если разрешение изображения не подходит для печати в выбранном формате.
Ссылки
- ^ Небель, Э.; Масинтер, Л. (1995). «RFC 1867 Загрузка файлов на основе форм в HTML». doi :10.17487/RFC1867.
- ^ «HTML-формы и ввод».
- ^ «Рабочий проект W3C HTML5».
- ^ «Спецификации API W3C HTML5».
- ^ «Статистика ОС W3C».
- ^ «Статистика браузеров W3C».
- ^ «Исследования веб-технологий W3C. Использование Flash для веб-сайтов».
- ^ «Статистика Adobe Flash. Проникновение на ПК».
- ^ «Статистика поддержки HTML5».
- ^ «Статистика поддержки HTML5 BrowserScope».
- ^ "Спецификация Exif". Архивировано из оригинала 2020-11-27 . Получено 2012-06-15 .
- ^ "Спецификация IPTC". Архивировано из оригинала 2012-06-16 . Получено 2012-06-15 .