В чем отличия и последствия (как хорошие, так и плохие) от использования атрибута data-src
или src
тега img
? Могу ли я достичь тех же результатов с помощью обоих? Если да, то когда следует использовать каждый из них?
В чем все различия между атрибутами src и data-src?
Ответ 1
Атрибуты src
и data-src
не имеют ничего общего, за исключением того, что оба они разрешены HTML5 CR, и оба они содержат буквы src
. Все остальное отличается.
Атрибут src
определяется в спецификациях HTML и имеет функциональное значение.
Атрибут data-src
является лишь одним из бесконечных наборов атрибутов data-*
, которые не имеют определенного значения, но могут использоваться для включения в элемент невидимых данных для использования в сценариях (или стилизации).
Ответ 2
Если вы хотите, чтобы изображение загружалось и отображалось определенное изображение, используйте .src
для загрузки этого URL изображения.
Если вам нужна часть метаданных (по любому тегу), которые могут содержать URL-адрес, используйте data-src
или любой data-xxx
, который вы хотите выбрать.
Документация MDN по атрибутам data-xxxx: https://developer.mozilla.org/en-US/docs/DOM/element.dataset
Пример src
в теге изображения, где изображение загружает JPEG для вас и отображает его:
<img id="myImage" src="http://mydomain.com/foo.jpg">
<script>
var imageUrl = document.getElementById("myImage").src;
</script>
Пример "data-src" на теге без изображения, где изображение еще не загружено - это всего лишь фрагмент метаданных в теге div:
<div id="myDiv" data-src="http://mydomain.com/foo.jpg">
<script>
// in all browsers
var imageUrl = document.getElementById("myDiv").getAttribute("data-src");
// or in modern browsers
var imageUrl = document.getElementById("myDiv").dataset.src;
</script>
Пример data-src
в теге изображения, используемом как место для хранения URL-адреса альтернативного изображения:
<img id="myImage" src="http://mydomain.com/foo.jpg" data-src="http://mydomain.com/foo.jpg">
<script>
var item = document.getElementById("myImage");
// switch the image to the URL specified in data-src
item.src = item.dataset.src;
</script>
Ответ 3
Первый <img />
недействителен - src
является обязательным атрибутом. data-src
- это атрибут, который может быть использован, например, для JavaScript, но не имеет представления.
Ответ 4
атрибут data-src является частью коллекции атрибутов data- *, представленной в HTML5. data-src позволяют нам хранить дополнительные данные, которые не имеют значения для браузера, но которые могут использоваться в коде Javascript Code или CSS.
Ответ 5
Ну, атрибут src данных используется только для привязки данных, например ASP.NET...