Wątek przeniesiony 2023-10-02 16:37 z JavaScript przez Riddle.

Załadowanie komponentu w osobnym wątku

0

Korzystam z Vue3 oraz tego kalendarza/date pickera: https://vcalendar.io/

Jest on niestety bardzo wolny przy mojej konfiguracji przez co opóźnia załadowanie strony. Bez kalendarza kliknięcie w menu na stronę, która go zawiera zajmuje np. 5ms. Jeśli jednak mam kilka kalendarzy to strona ładuje się np. 1-2 sekundy co jest bardzo odczuwalne.

Jako, że te kalendarze są widoczne dopiero w modalu to pomyślałem, że mógłbym ładować te komponenty po załadowaniu strony. Na komponencie po prostu ustawiłem sobie v-if i ustawiałem go na true dopiero jak strona się ładuje i te modale/kalendarze ładowały się w tle.

Problem jest taki, ze w takim przypadku po załadowaniu strony podczas gdy te modale/kalendarze się ładują jest blokowany główny wątek więc user nie może nic klikać (np. menu czy przycisków itd.) więc to odpada.

Pomyślałem, żeby ładować te modale/kalendarze w osobnym wątku po prostu ale nie mogę znaleźć na to sposobu. Przykładowe ustawienia kalendarza:

            <VCalendar
              color="green"
              :step="1"
              :columns="4"

            >
            </VCalendar>

Posiadanie kilku takich na stronie zauważalnie spowalnia stronę. Mówię o skromnej liczbie typu 3-5.

Jeśli posiada ktoś rozwiązanie lub namiar na lepszy kalendarz/date picker, który jest wydajny to chętnie przyjmę pomoc.

Moja propozycja z ładowaniem tego w innym wątku to tylko próba zakamuflowania tego niewydajnego kalendarza wiem, że to nie jest idealny pomysł ale myślałem, że pozwoli szybko to załatwić. Czy wie ktoś czy istnieje możliwość np. stworzenia web workera i stworzenie tam komponentu i dopiero z tego workera wynik przesłać do głównego wątku a następnie do DOM?

0

Musiałbyś mieć osobny webworker dla całego kalendarza. Z tego co wiem to Monaco Editor tak działa że ma właśnie swój webworker. Nie wiem, jak ciężko byłoby Ci zrobić wrapper.

1 użytkowników online, w tym zalogowanych: 0, gości: 1