Показать сообщение отдельно
  #1 (permalink)  
Старый 18.05.2018, 21:19
Новичок на форуме
Отправить личное сообщение для somejs Посмотреть профиль Найти все сообщения от somejs
 
Регистрация: 18.05.2018
Сообщений: 9

Переменная в классе или датасете
Приветствую всех. Как-то так вышло, что еще давно пришла в голову идея передавать переменные из 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
Ответить с цитированием