Показать сообщение отдельно
  #21 (permalink)  
Старый 05.04.2018, 16:54
Кандидат Javascript-наук
Отправить личное сообщение для sortarray Посмотреть профиль Найти все сообщения от sortarray
 
Регистрация: 19.09.2015
Сообщений: 117

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:58.
Ответить с цитированием