Path: csiph.com!2.eu.feeder.erje.net!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder4.news.weretis.net!news.unit0.net!news.nask.pl!news.nask.org.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Roman Tyczka Newsgroups: pl.comp.lang.javascript Subject: Re: Wczytywanie =?UTF-8?B?c2tyeXB0w7N3?= Date: Tue, 11 Sep 2018 10:32:59 +0200 Organization: ATMAN - ATM S.A. Lines: 36 Sender: romek@tyczka.no.found Message-ID: <1muzqdv1rbvnb.dlg@tyczka.com> References: <82x3gdp9ljso.dlg@tyczka.com> <20180910115046.10abb9f6@spam.no> <1p6q0p38frnoj$.1y2dh3fne43sl.dlg@40tude.net> NNTP-Posting-Host: ip-94-75-90-137.wave.com.pl Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Trace: node2.news.atman.pl 1536654779 9913 94.75.90.137 (11 Sep 2018 08:32:59 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Tue, 11 Sep 2018 08:32:59 +0000 (UTC) User-Agent: 40tude_Dialog/2.0.15.84 Xref: csiph.com pl.comp.lang.javascript:3523 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