Приветствую всех. Как-то так вышло, что еще давно пришла в голову идея передавать переменные из html в js через имя или класс. Уже как давно используется dataset. Но, вот, провел эксперимент:
Создал обычный селект (эта часть кода не входит в эксперимент):
var select = document.createElement("select");
select.classList.add("a-b-c");
select.id = "s";
select.dataset.info = "{'a':'a','b':'b','c':'c'}";
document.body.appendChild(select);
А вот тут уже пошел эксперимент - извлекаю переменные при помощи резки:
var result = document.getElementById('s').className.toString(). split("-");
console.log(result);
и при помощи датасета:
var resultx = document.getElementById('s').dataset.info;
console.log(resultx);
Результат получился такой:
(3) ["a", "b", "c"]
name time = 3.6999999974796083
{'a':'a','b':'b','c':'c'}
dataset time = 15.700000003562309
Во сколько раз быстрее даже со split получается извлечь переменные из класса. Но загрузил код в бенчмарк (
http://jsben.ch) и получил такую, вот, картинку (в приложении). Дык, как это работает, что быстрее, стоит ли извращаться или спокойно использовать датасеты? Интересны адекватные объяснения.
https://scontent.fiev2-1.fna.fbcdn.n...&oe=5 B9A109A