Почему с поддержкой загрузки разрешает данные файла в href?

#html #download

#HTML #Скачать

Вопрос:

Наличие загружаемого файла в HTML5 довольно просто в коде.

 <a href="/files/whateverFile.txt" download="fileNameForUser.txt">
 

Это берет файл в расположении href и отправляет его в ОС для загрузки этого файла с именем файла в параметре download=»fileName» .

Чего я не понимаю, так это когда вы делаете это

 <a href="data:application/txt;charset=utf-8,theseAreTheFileContents" download="fileName.txt">
 

Это попросит пользователя загрузить fileName.txt который содержит «theseAreTheFileContents» в качестве текста внутри. Данные находятся на самой странице, и браузер не ищет никаких других URL-адресов для получения требуемых данных.

Почему содержимое файла находится в href? Href сообщает браузеру местоположение определенного ресурса. Почему бы не иметь больше полей в загружаемых привязках? Например

 <a href="null" datatype="application/txt" charset="utf-8" data="theseAreFileContents" download="fileName.txt">
 

Разве это не более понятно? Href не должен означать более одной конкретной вещи.

Ответ №1:

data: URL-адреса схемы являются стандартными (которые предшествуют download атрибуту).

Они не были созданы для использования с элементами привязки (и чаще всего используются для встраивания небольших изображений в файлы CSS).

Привязочные элементы не были предназначены для связи со встроенными данными, они просто поддерживают их, потому data: что схема существует.