shama / on-load

On load/unload events for DOM elements using a MutationObserver
113 stars 19 forks source link

Use getAttribute instead of .dataset #3

Closed timwis closed 8 years ago

timwis commented 8 years ago

I noticed that after adding on-load to my app, my test broke because jsdom doesn't support .dataset (tmpvar/jsdom#961). Changing from .dataset to .getAttribute('data-...') does the trick. The question is (a) whether there are any other use cases other than jsdom, and (b) whether there's any advantage of using .dataset that we'd lose by using .getAttribute().

yoshuawuyts commented 8 years ago

Interesting;

shama commented 8 years ago

Thanks!

shama commented 8 years ago

I thought dataset[KEY_ID] would have been faster but it turns out setAttribute() is tiny bit faster on average (at least with my silly test in Chrome just now).

dataset: 0.052ms
setAttribute: 0.009ms
dataset: 0.107ms
setAttribute: 0.013ms
dataset: 0.044ms
setAttribute: 0.027ms
dataset: 0.020ms
setAttribute: 0.006ms
dataset: 0.019ms
setAttribute: 0.005ms
dataset: 0.036ms
setAttribute: 0.010ms
dataset: 0.019ms
setAttribute: 0.005ms
dataset: 0.021ms
setAttribute: 0.006ms
dataset: 0.022ms
setAttribute: 0.006ms
dataset: 0.013ms
setAttribute: 0.004ms
dataset: 0.030ms
setAttribute: 0.008ms
dataset: 0.025ms
setAttribute: 0.006ms
yoshuawuyts commented 8 years ago

Yay for a 5-10x speed up! 😝