• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

animacja się zatrzymuje podczas wykonywania funkcji

Object Storage Arubacloud
+1 głos
181 wizyt
pytanie zadane 23 lipca 2021 w JavaScript przez stellatus Obywatel (1,390 p.)
Mam taki przykład:

https://codepen.io/reti/pen/YzVEqxr

Po naciśnięciu "Download PDF" albo "Render PDF" animacja się zatrzymuje. Rozumiem, że jest to związane z jednowątkowością JS i trzeba zmienić kod na asynchroniczny, zgadza się? Czy idę w ogóle dobrym tropem? Jeżeli tak, to nad czym dokłądnie powinienem się skupić? Na Promise? Studiuję już trochę temat asynchroniczności, ale nadal to jest dla mnie czarna magia.

Po co mi to?

Czasami renderowane PDF-y mają duże rozmiary (szczególnie gdy zawierają grafikę) i trzeba trochę poczekać. Wtedy powinien pojawić się loader.
komentarz 23 lipca 2021 przez ScriptyChris Mędrzec (190,190 p.)
Masz na myśli, że ten GIF się całkiem zatrzymuje czy przywiesza na chwilę? Bo na CodePen nie widzę, żeby to zatrzymywało po naciśnięciu wspomnianych przycisków, ale chyba delikatnie się przycina na moment.
komentarz 23 lipca 2021 przez stellatus Obywatel (1,390 p.)
Dzięki za odpowiedź. Chodziło mi o to, że przywiesza na chwilę, ale ta chwila wydłuża się w zależności od wielkości PDF.
komentarz 23 lipca 2021 przez ScriptyChris Mędrzec (190,190 p.)

Hmm, w kodzie ustawiasz jakąś opcję PDFJS.disableWorker, podczas gdy ta biblioteka raczej nie ma takiej opcji (przejrzyj źródło kodu, który podpinasz na CodePen). W każdym razie, mógłbyś procesowanie PDF-a wykonać właśnie w Workerze (czyli pójść w wykorzystanie osobnego wątku) i wynik przesłać do głównego wątku, aby wrzucić go w DOM (sam Worker na to nie pozwala).

komentarz 24 lipca 2021 przez stellatus Obywatel (1,390 p.)
Dzięki wielkie i przepraszam za zamieszanie. Potrzebny jest mi tylko eksport do pliku. Ta część kodu, która umożliwia podgląd na stronie jest mi do niczego niepotrzebna i powinienem ją wywalić z codepena (co właśnie zrobiłem). Swoją drogą tam coś też chyba nie gra, bo przy dużych plikach (np. ze zdjęciami) trwa to bardzo wolno. Stąd pomysł wyświetlania spinnera.

1 odpowiedź

0 głosów
odpowiedź 23 lipca 2021 przez stellatus Obywatel (1,390 p.)
Problem rozwiązałem poprzez użycie bilbioteki https://spin.js.org/

Niestety nie rozumiem jak to działa, ale na razie to mi wystarczy.

Podobne pytania

+1 głos
1 odpowiedź 394 wizyt
+1 głos
0 odpowiedzi 146 wizyt
pytanie zadane 14 maja 2019 w JavaScript przez BT101 Stary wyjadacz (12,540 p.)
+1 głos
3 odpowiedzi 573 wizyt
pytanie zadane 11 kwietnia 2021 w C# przez tomasz12345 Użytkownik (750 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...