2013-06-04 13 views
10

Wyświetlam animowany GIF, który działa, gdy moje żądanie AJAX jest w toku i zostaje zatrzymany po przetworzeniu odpowiedzi przez skrypt.Czy to prawda, że ​​animacja GIF działa w tym samym wątku, co javascript we wszystkich popularnych przeglądarkach?

Podczas tej operacji zauważam, że podczas gdy odpowiedź z żądania jest przetwarzana w moim skrypcie (który zawiera dość ciężką aktualizację DOM) animacja zawiesza się.

Moje badania skłaniają mnie do przekonania, że ​​dzieje się tak dlatego, że animacja GIF odbywa się w tym samym wątku, w którym działa javascript - że przeglądarka jest prawdziwie jednowątkowa. Czy jest to poprawna interpretacja dla wszystkich obecnych przeglądarek głównych (np. Chrome, Firefox, Safari, IE)?

Po drugie, dlaczego tak się dzieje? Czy naprawdę nie jest możliwe, że przeglądarka mogłaby poświęcić wątek animacjom GIF, aby nie zamarzały, gdy wykonywany był blok javascript?

Aktualizacja

This to interesująca strona. Mówi o użyciu czystych animacji CSS3. Wciąż jednak zawieszają się w Firefoksie - może wkrótce FF to naprawi. Wygląda na to, że powinienem uważać CSS za animację raczej za pomocą GIF-a.

+0

Nie powinno to być łatwe do sprawdzenia? Wyciągnij inspektora sieci, ustaw punkt przerwania. Domyślam się, że nie, ale jeśli tak jest, może to pomoże przekonać ludzi do zaprzestania używania gifów, w takim przypadku może nie powinno być naprawione ... –

+0

Cóż, tak, ustawienie punktu przerwania zatrzymuje animowany GIF przed uruchomieniem. A więc jaka jest Twoja alternatywa dla animowanego GIF-a? –

+0

Nie mam jednego * siebie *, i nie wydaje się, aby format był szeroko obsługiwany w oprogramowaniu klienckim, które nawet pasuje do stabilności przerażającej jakości GIF, ale musisz wiedzieć, że sam format GIF (i wszystkie znane oprogramowanie, które je renderuje) jest strasznie nieaktualne. GIF zbiorowo okrada nas z wielu gigawatów, postawiłem. A także uruchamia się z opóźnieniem dla wszelkich nieważnych rozdzielczości na urządzeniach mobilnych. –

Odpowiedz

1

Przypuszczam, że problme to (IMHO), że po aktualizacji domeny przeglądarka nie odświeża strony, więc obraz zamarza.

Staraj się robić ciężkie rzeczy bez zmiany dom, gif powinien animować (powoli, jeśli twój procesor jest zajęty), ale nie zamrażać.

Jeśli to się nie powiedzie, możesz jawnie utworzyć nowy wątek dla tej pracy (używając webworkera), ale jeśli dobrze pamiętam, nie możesz zmienić domu z webworkera.

Powiązane problemy