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

Pytania odnośnie bundlowania modułów w JavaScript

Object Storage Arubacloud
+1 głos
467 wizyt
pytanie zadane 3 lutego 2020 w JavaScript przez Artek Stary wyjadacz (11,800 p.)

Zagłębiłem się w temat webpacka, modułów i bundlowania. Nie mogę skumać do czego bundlowanie jest potrzebne znalazłem np. taki tutorial w którym opisano to w ten sposób : 

To illustrate, imagine you are building a web application, which is made up of multiple JavaScript files. You add JavaScript files into html via script tags:

<html>
  <script src="/src/foo.js"></script>
  <script src="/src/bar.js"></script>
  <script src="/src/baz.js"></script>
  <script src="/src/qux.js"></script>
  <script src="/src/quux.js"></script>
</html>

Each file requires a separate http requests, which is 5 round trip requests in order to get your application started. So it would be better if you can combine all 5 files into 1:

<html>
  <script src="/dist/bundle.js"></script>
</html>

 No i niby wszystko fajnie, tylko do czego to jest potrzebne skoro równie dobrze mogę dodać jeden tag <script> 

i w nim napisać taki kod.

import example from './foo.js';
import someAlias1 from './bar.js';
import someAlias2 from './baz.js';
import someAlias3 from './qux.js';
import someAlias4 from './quux.js';

I też będę miał jeden plik. Więc w czym bundlowanie jest lepsze?

1 odpowiedź

0 głosów
odpowiedź 3 lutego 2020 przez Comandeer Guru (600,810 p.)
wybrane 3 lutego 2020 przez Artek
 
Najlepsza
W tym, że zamienia importy na kod konkretnych modułów. To są wszystkie te pliki złączone w jeden, co sprawia, że wystarczy wykonać jedno żądanie HTTP zamiast kilku.

W przypadku wrzucenia importów do jednego pliku sytuacja jest jeszcze gorsza, bo najpierw musi zostać pobrany ten plik, a dopiero potem mogą się rozpocząć kolejne importy.
komentarz 3 lutego 2020 przez Artek Stary wyjadacz (11,800 p.)
Chwilę potem jak napisałem to też sobie pomyślałem, że pewnie chodzi o to, że trzeba pobrać te pli foo, bar, baz itd.

Czyli wychodzi na to, że po zbundlowaniu tak na dobrą sprawę nie mamy do czynienia z modułami tylko czymś co symuluje ich działanie. Jak rozumiem stosowanie modułów na produkcji też jest raczej niewskazane.
1
komentarz 3 lutego 2020 przez Comandeer Guru (600,810 p.)
To wszystko zależy. Używanie pojedynczych modułów połączone z agresywną strategią cache'owania pozwala na inny typ optymalizacji (np. podmianę części aplikacji bez ruszania reszty). Zawsze najlepiej poeksperymentować i wybrać najlepsze rozwiązanie dla naszego przypadku.
komentarz 3 lutego 2020 przez Artek Stary wyjadacz (11,800 p.)
Fajnie, dzięki za odpowiedź. A jak byś wytłumaczył fakt, że skoro umieszczanie skryptów w jednym pliku jest dobre to dlaczego  nawet jeżeli podglądam kod źródłowy youtube to widzę  część skryptów porozrzucanych w kilku plikach, a część osadzonych bezpośrednio w kodzie strony? Jest jakiś powód ku temu? Tak na dobrą sprawę podglądam kod wielu różnych stron już od dłuższego czasu i na wielu witrynach jest podobnie. Niekiedy nawet kilkanaście plików ze skryptami.
komentarz 3 lutego 2020 przez Comandeer Guru (600,810 p.)
Wrzucone bezpośrednio do kodu HTML nie powodują żadnych żądań HTTP, więc są w miarę "tanie". Jeśli chodzi o YT, to tutaj dochodzi jeszcze jedna kwestia: oni nie muszą się starać ;) Poza tym AFAIR YT właśnie szedł w agresywny cache poszczególnych części kodu – może to jest powód.
komentarz 4 lutego 2020 przez Artek Stary wyjadacz (11,800 p.)
Ale osadzanie bezpośrednio w kodzie html powoduje mieszanie poszczególnych warstw aplikacji, co też nie jest dobre - dlatego mnie to zastanowiło.

Podobne pytania

0 głosów
0 odpowiedzi 187 wizyt
pytanie zadane 13 sierpnia 2016 w JavaScript przez xandros Nałogowiec (29,450 p.)
0 głosów
2 odpowiedzi 723 wizyt
+2 głosów
1 odpowiedź 74 wizyt

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 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!

...