Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   UpJump: Q&A :) (https://javascript.ru/forum/misc/14421-upjump-q.html)

B@rmaley.e><e 22.04.2011 22:17

Да.

UpJump 23.04.2011 01:12

Хорошо, а при нескольких setInterval() их итерации могут запускаться не последовательно? Например:
var int1 = setInterva(f1,1)
var int2 = setInterval(f2,1)
var int3 = setInterval(f3,1)

К примеру итерация из int3 обогнать int1 или int2?

B@rmaley.e><e 23.04.2011 08:41

Да.

UpJump 23.04.2011 22:52

спс

UpJump 25.04.2011 15:32

всем привет. при использовании setInterval() в разных браузерах минимальный интервал разный:
Firefox и Safari в среднем 11мс
Opera — 2 мс
Chrome — 4 мс
IE — 15 мс.

С помошью postMessage можно существенно сократить время для всех браузеров кроме IE. вот статья кому интересно. Вопрос в следующем. Есть ли какой-нибудь способ сократить время в IE?

UPD
Если есть ссылки на топик по данному сабжу буду признателен

Aetae 26.04.2011 01:26

Зачем?

FINoM 26.04.2011 01:46

Можно ли сделать объект-константу либо свойство-константу?

B@rmaley.e><e 26.04.2011 07:15

FINoM, в ES5 есть Object.seal и Object.freeze, но они еще не везде реализованы. Константное "свойство" можно реализовать, используя методы, возвращающие копию значения.

UpJump 26.04.2011 12:32

Aetae, для быстрой и одновременно плавной анимации.

poorking 26.04.2011 13:19

UpJump,
Мне кажется это будет зависеть больше не от этого времени, а от того, сколько стилей вы будете менять за 1 кадр, так как это очень медленная операция, так что оптимизировать нужно именно там, при возможности менять классы, а не значения свойств стилей. А скорости вполне хватить должно.
<!DOCTYPE html>
<meta charset = "utf-8" />
<script type = "text/javascript">


window.onload = function(){
	var stranger = document.getElementById("stranger"), A = 250, STEP = 1;
	
	var top, left, c = 0;
	(function(){
		c %= 360;
		
		top = A + A * Math.sin((c ++)/180 * Math.PI);
		left = A + A * Math.cos((c ++)/180 * Math.PI);
		
		stranger.style.top = top + "px";
		stranger.style.left = left + "px";
		
		window.setTimeout(arguments.callee, STEP);
	}())
}
</script>
<style type = "text/css">
	#stranger{
		position:absolute;
		border: red solid thick;
		background-color: green;
		width: 50px;
		height: 50px;
	}
</style>

<div id = "stranger"></div>

в ie9 летает быстрее чем в FF и даже быстрее чем в хроме, правда открыто много вкладок.

И еще, лично я считаю, что лучше пожертвовать плавностью в анимации перед загруженностью процессора, если вы раз в миллисекунду будете менять штук 10 стилей элемента, и если таких элементов будет несколько например (вдруг игра какая нибудь), то тормозов не избежать, лучше уж делать шаг перемещения побольше, чем супер короткие кадры. К тому же если анимация быстрая, то не заметно все равно.
Это конечно относится только к длительным постоянным анимациям, а не всплывашкам/менюшкам/выезжашкам


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