-
21. Data: 2013-02-02 01:36:12
Temat: Re: Problem z animacją JS
Od: Cezary Tomczyk <c...@g...com>
W dniu 2013-02-01 21:25, Jasio pisze:
> W dniu 2013-02-01 16:36, Marek pisze:
>> Sprawdzałeś dla 10mS?
>
> Może zacznijmy od tego, że wszelkie wartości poniżej 17ms są czystym
> kretynizmem.
Nie wiem czy akurat poniżej 17ms, ale wartości poniżej 10 ms nie mają
sensu na pewno, bo cokolwiek nie ustawisz < 10 ms to i tak będzie 10 ms.
https://developer.mozilla.org/en-US/docs/DOM/window.
setTimeout#Minimum_delay_and_timeout_nesting
--
Cezary Tomczyk
http://www.ctomczyk.pl/
-
22. Data: 2013-02-02 01:46:02
Temat: Re: Problem z animacją JS
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Sat, 02 Feb 2013 00:32:04 +0100, Jasio napisał(a):
>> Jak już ogarniesz asynchroniczne wywołania, które oprogramowane *w ten
>> sposób* można doprowadzić do wyścigu, to wróć, pogadamy.
>
> Po pierwsze wytłumacz mi co ma race condition do środowiska ST, jakim
> jest JS, skoro to problem, który pochodzi z MT???
Wywołania asynchroniczne mogą do takiego problemu doprowadzić. Ok, nie jest
to stricte problem JS, tylko aplikacji jako takiej.
> Tutaj jeśli podstawisz odpowiednio duże N, tak żeby for wykonywał się
> równo minutę, to po 10 minutach będzie równo 10 wywołań funkcji, bo
> kolejne wywołanie nie zostanie wykonane, dopóki pierwsze się nie
> skończy, czyli *NIGDY* nie będziesz miał dwóch funkcji wykonujących się
> równocześnie, a co za tym idzie, nie istnieje problem, o którym tak
> namiętnie dyskutujecie!
A tu masz w pełni rację.
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
23. Data: 2013-02-02 01:46:49
Temat: Re: Problem z animacją JS
Od: Cezary Tomczyk <c...@g...com>
W dniu 2013-02-02 00:32, Jasio pisze:
[...]
> Czyli obaj uważacie, że coś takiego jest możliwe, ale coś takiego nigdy
> się nie wydarzy w JS, bo to jest single thread!!!
>
> setTimeout(function() {while(true) {} }, 4);
> setTimeout(function() {alert('as'); }, 5);
>
> w tym przypadku alert nie wykona się nigdy, bo pierwsza funkcja będzie
> trwała w nieskończoność, a powtórzę po raz kolejny: w JS nie ma MT (nie
> licząc Workerów, ale nie o tym mowa, bo one z tego powodu nie mają
> dostępu do DOM)!!!
> setInterval(function() {for(i=0;i<N;i++) {}}, 4)
>
> Tutaj jeśli podstawisz odpowiednio duże N, tak żeby for wykonywał się
> równo minutę, to po 10 minutach będzie równo 10 wywołań funkcji, bo
> kolejne wywołanie nie zostanie wykonane, dopóki pierwsze się nie
> skończy, czyli *NIGDY* nie będziesz miał dwóch funkcji wykonujących się
> równocześnie, a co za tym idzie, nie istnieje problem, o którym tak
> namiętnie dyskutujecie!
No i słusznie zauważyłeś. JavaScript nie jest (póki co) wielowątkowy.
Niemniej jednak są inne problemy z setInterval o których wspomniałem w
innym wątku.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
-
24. Data: 2013-02-02 01:53:00
Temat: Re: Problem z animacją JS
Od: Jasio <n...@o...pl>
W dniu 2013-02-02 01:36, Cezary Tomczyk pisze:
> W dniu 2013-02-01 21:25, Jasio pisze:
>> W dniu 2013-02-01 16:36, Marek pisze:
>>> Sprawdzałeś dla 10mS?
>>
>> Może zacznijmy od tego, że wszelkie wartości poniżej 17ms są czystym
>> kretynizmem.
>
> Nie wiem czy akurat poniżej 17ms, ale wartości poniżej 10 ms nie mają
> sensu na pewno, bo cokolwiek nie ustawisz < 10 ms to i tak będzie 10 ms.
>
> https://developer.mozilla.org/en-US/docs/DOM/window.
setTimeout#Minimum_delay_and_timeout_nesting
>
>
to zależy od przeglądarki.
Jeśli mówimy o animacjach to wszystko poniżej 17ms idzie w palnik, bo
zostanie przeliczone, a i tak się nie wyświetli.
Z resztą obie wersje są złe, bo do animacji jest inna funkcja
http://ie.microsoft.com/testdrive/Graphics/RequestAn
imationFrame/Default.html
-
25. Data: 2013-02-02 01:56:12
Temat: Re: Problem z animacją JS
Od: Jasio <n...@o...pl>
W dniu 2013-02-02 01:30, Cezary Tomczyk pisze:
> W dniu 2013-02-02 00:32, Jasio pisze:
> [...]nie istnieje problem, o którym tak
>> namiętnie dyskutujecie!
>
> Uh, ale są inne problemy:
>
> https://developer.mozilla.org/en-US/docs/DOM/window.
setInterval#Dangerous_usage
>
>
matkoboskoczestochosko, tytuł tematu to "Problem z *animacją* JS" i
rozmawiamy o animacjach, a nie o asynchronicznych requestach sieciowych
-
26. Data: 2013-02-02 01:58:43
Temat: Re: Problem z animacją JS
Od: Jasio <n...@o...pl>
W dniu 2013-02-02 01:46, Borys Pogoreło pisze:
> Wywołania asynchroniczne mogą do takiego problemu doprowadzić. Ok, nie jest
> to stricte problem JS, tylko aplikacji jako takiej.
przede wszystkim jest to problem requestów sieciowych, eventów etc., bo
jakoś nie wyobrażam sobie, co może być asynchroniczne w animacji, a o
tym jest wątek :)
-
27. Data: 2013-02-02 02:01:41
Temat: Re: Problem z animacją JS
Od: Jasio <n...@o...pl>
W dniu 2013-02-02 01:46, Cezary Tomczyk pisze:
> JavaScript nie jest (póki co) wielowątkowy
I nigdy* nie będzie.
*Jeśli nawet, to za wiele lat, bo żaden silnik DOM nie obsługuje
wielowątkowości, a nowego nie napiszesz w chwilę.
I nawet jeśli tak się stanie, to będzie to musiało być jakoś dodatkowo
włączane, bo wszystkie strony, które aktualnie używają JS przestałyby
działać,
-
28. Data: 2013-02-02 02:05:50
Temat: Re: Problem z animacją JS
Od: Cezary Tomczyk <c...@g...com>
W dniu 2013-02-02 01:53, Jasio pisze:
> W dniu 2013-02-02 01:36, Cezary Tomczyk pisze:
>> W dniu 2013-02-01 21:25, Jasio pisze:
>>> W dniu 2013-02-01 16:36, Marek pisze:
>>>> Sprawdzałeś dla 10mS?
>>>
>>> Może zacznijmy od tego, że wszelkie wartości poniżej 17ms są czystym
>>> kretynizmem.
>>
>> Nie wiem czy akurat poniżej 17ms, ale wartości poniżej 10 ms nie mają
>> sensu na pewno, bo cokolwiek nie ustawisz < 10 ms to i tak będzie 10 ms.
>>
>> https://developer.mozilla.org/en-US/docs/DOM/window.
setTimeout#Minimum_delay_and_timeout_nesting
> to zależy od przeglądarki.
Hm, specyfikacja na W3C mówi nawet, że "If timeout is less than 4, then
increase timeout to 4"
(http://www.w3.org/html/wg/drafts/html/master/webapp
apis.html#dom-windowtimers-setinterval,
punkt 5).
No cóż, nie od dziś wiadomo, że implementacje w przeglądarkach różnią
się :-)
> Jeśli mówimy o animacjach to wszystko poniżej 17ms idzie w palnik, bo
> zostanie przeliczone, a i tak się nie wyświetli.
Z ciekawości: skąd akurat 17ms? Jakieś źródło informacji o tym?
> Z resztą obie wersje są złe, bo do animacji jest inna funkcja
> http://ie.microsoft.com/testdrive/Graphics/RequestAn
imationFrame/Default.html
Tak, requestAnimationFrame
(https://developer.mozilla.org/en-US/docs/DOM/window
.requestAnimationFrame
) jest lepszym rozwiązaniem. Plus ewentualnie, jak komuś zależy,
fallback w postaci setInterval / setTimeout.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
-
29. Data: 2013-02-02 02:07:05
Temat: Re: Problem z animacją JS
Od: Cezary Tomczyk <c...@g...com>
W dniu 2013-02-02 01:56, Jasio pisze:
> W dniu 2013-02-02 01:30, Cezary Tomczyk pisze:
>> W dniu 2013-02-02 00:32, Jasio pisze:
>> [...]nie istnieje problem, o którym tak
>>> namiętnie dyskutujecie!
>>
>> Uh, ale są inne problemy:
>>
>> https://developer.mozilla.org/en-US/docs/DOM/window.
setInterval#Dangerous_usage
>>
>>
>>
>
> matkoboskoczestochosko, tytuł tematu to "Problem z *animacją* JS" i
> rozmawiamy o animacjach, a nie o asynchronicznych requestach sieciowych
Ah tam zaraz. Co to nie można wtrącić czegoś innego do wątku? :/
--
Cezary Tomczyk
http://www.ctomczyk.pl/
-
30. Data: 2013-02-02 02:08:16
Temat: Re: Problem z animacją JS
Od: Cezary Tomczyk <c...@g...com>
W dniu 2013-02-02 02:01, Jasio pisze:
> W dniu 2013-02-02 01:46, Cezary Tomczyk pisze:
>> JavaScript nie jest (póki co) wielowątkowy
>
> I nigdy* nie będzie.
>
> *Jeśli nawet, to za wiele lat, bo żaden silnik DOM nie obsługuje
> wielowątkowości, a nowego nie napiszesz w chwilę.
> I nawet jeśli tak się stanie, to będzie to musiało być jakoś dodatkowo
> włączane, bo wszystkie strony, które aktualnie używają JS przestałyby
> działać,
I w ten sposób będziemy mieli zawsze co robić :-)
--
Cezary Tomczyk
http://www.ctomczyk.pl/