On Mon, 10 Sep 2018 23:10:49 +0200, Borys Pogoreło wrote:
>> To jest trochę kłopot. Bo jak rozwiązujecie taki układ, że strona składa
>> się z kilku fragmentów, będących szablonami i w nich następują odwołania do
>> jQuery, które podpinają zdarzenia pod np. buttony formularzy? One są w
>> środku strony, więc jak zaczynają działać to jQuery jeszcze nie będzie
>> załadowane, bo ładuje się na końcu i bach.. błąd.
>
> Klasyczny problem jajka i kury, praktycznie nierozwiązywalny w śmietnikach
> typu Wordpress. Teoretycznie mógłbyś spróbować przechwycić wszystkie
> wywołania jQuery, skolejkować i uruchomić po załadowaniu właściwej
> biblioteki. Ale jeśli masz do czynienia z cudzym kodem, to tam może dziać
> się wszystko i takie rozwiązanie zaraz wybuchnie.
Kod jest mój, znaczy nie jest to jakiś CMS czy coś, tylko cały kod jest
własny. Mogę z nim robić co chcę... obym tylko umiał ;-)
Na czym polega to przechwytywanie wywołań jQuery?
Bo sprawa jest teoretycznie prosta. W każdym z tych małych szablonów
potrzebuję przypinać zdarzenia, używam do tego jQuery, ale szablon jest
wczytany, gdy jQuery jeszcze nie ma. Można by to przypięcie zdarzeń wsadzić
w SetTimeout(), ale to drut, bo nigdy nie wiadomo czy czas jest odpowiedni.
Szkoda, że nie ma czegoś takiego jak SetTimeOut() ale z flagą afterLoadPage
czy coś w tym stylu.
Albo teraz wymyśliłem, mógłbym w nagłówku mieć zadeklarowaną jakąś tablicę
funkcji i do niej pakować wywołania z wnętrza strony, a stopka by tylko to
wyciągała z tablicy i odpalała, ale nie wiem jak to zrobić.
> Skrypty zaś wczytuje się w stopce, bo ich przetwarzanie blokuje
> renderowanie strony. A przy kilkusetkilobajtowych klockach kodu to staje
> się zauważalne na telefonach.
No i właśnie dlatego warto te skrypty mieć na końcu i o to walczyć.
--
pozdrawiam
Roman Tyczka