Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает onclick (https://javascript.ru/forum/misc/73304-ne-rabotaet-onclick.html)

sortarray 05.04.2018 16:54

Nexus,
Что касается тормозов нейтива, не поленился, протестил, резуьтат меня самого поразил, разница у меня в хроме X10 примерно. Я ожидал тормозов, но чтобы так.

<html>
<head>
<meta charset = "utf-8" />
<style>
</style>
</head>

<body>

<div id = "foo">click me foo</div>
<div id = "bar">click me bar</div>
<button id = "check">check</button>

<script>

foo.storage = []
foo.onclick = function(){var self = this; foo.storage.forEach(function(f){f.call(self)})}

var startTimeForCustom
var startTimeForNative 
var endTimeForCustom
var endTimeForNative

foo.storage.push(function(){startTimeForCustom = new Date()})
i = 10000
while(i--) foo.storage.push(function(){return 1 + 1})
foo.storage.push(function(){endTimeForCustom = new Date(); console.log("end custom")})


bar.addEventListener("click", function(){startTimeForNative = new Date()})
i = 10000
while(i--) bar.addEventListener("click", function(){return 1 + 1})
bar.addEventListener("click", function(){endTimeForNative = new Date(); console.log("end native")})

check.onclick = function(){
   console.log("custom: " + (endTimeForCustom - startTimeForCustom))
   console.log("native: " + (endTimeForNative - startTimeForNative))
}








</script>

</body>
</html>


И это при том, что перебор идет через нативный форич, то есть можно еще оптимизировать циклом.

sortarray 05.04.2018 16:56

Цитата:

Сообщение от Nexus
Если вы докажете свою точку зрения

Просто мне не интересно спорить о том, что для меня очевидно.
Единственное в чем было сомнение, это скорость

Nexus 05.04.2018 17:01

sortarray, и что вы замеряли в 21-м посту?
Скорость добавления в очередь?
Вам не кажется, что нужно замерять скорость её исполнения?

Смотрите 20-й пост.
Ваш метод стабильно на 200ms уступает.

sortarray 05.04.2018 17:05

Цитата:

Сообщение от Nexus
Скорость добавления в очередь?

не, исполнения

Nexus 05.04.2018 17:11

sortarray, согласен, на более тривиальных задачах ваш метод быстрее.

sortarray 05.04.2018 17:11

Цитата:

Сообщение от Nexus
Скорость добавления в очередь?

а скорость добавления вообще феерично

custom: 38.375244140625ms
native: 3365.93896484375ms

sortarray 05.04.2018 17:18

Цитата:

Сообщение от Nexus
на более тривиальных

на любых

Nexus 05.04.2018 17:22

sortarray,
Цитата:

Сообщение от sortarray
на любых

Боюсь нет.

sortarray 05.04.2018 17:24

Цитата:

Сообщение от Nexus
Боюсь

Не могу вас избавить от фобий, не специалист.

j0hnik 05.04.2018 17:35

querySelectorAll; в ~20 раз медленнее getElementsByClassName или getElementsByTagName, но вряд ли это-кто-то заметит если из не >100 000


Часовой пояс GMT +3, время: 01:38.