Naršyklės talpyklos problema
Naršyklė talpina prijungtus CSS stilių failus, JavaScript scenarijus ir paveikslėlius. Talpinimas reiškia, kad prijungti failai naršyklė atsisiunčia tik pirmą kartą vartotojui apsilankius svetainėje. Vėlesniais apsilankymais šie failai nebus dar kartą atsisiunčiami, o bus paimti iš naršyklės talpyklos.
Talpinimas yra naudingas. Jis sukurtas svetainės įkėlimo greičiui padidinti. Juk naršyklei greičiau paimti failą iš savo saugyklos, nei kaskart jį atsisiųsti iš interneto.
Tačiau už greitį tenka mokėti patogumo trūkumu kūrimo metu. Esmė ta, kad jei pakeisite ką nors savo kode ir tada paskelbsite pakeitimus šiame hostinge - visi vartotojai, kurie jau lankėsi jūsų svetainėje, turės sena talpinamą kodo kopiją.
Pirmasis problemos sprendimas
Kovojant su tokiu elgesiu reikia kaskart pervadinti pakeistus failus. Praktiškai tai nėra patogu, todėl naudojama gudri priemonė. Jos esmė ta, kad prijungiant failą po failo pavadinimo dedame klaustuką, lygybės ženklą ir savo scenarijaus versijos numerį. Tokia konstrukcija vadinama GET parametru.
GET parametro buvimas failo pavadinime "nesugadina" kelio serverio požiūriu, toliau nurodant tą patį failą. Tačiau naršyklės požiūriu GET parametro pakeitimas verčia naršyklę manyti, kad failo kelias pasikeitė ir failą atsisiųsti iš naujo.
Kovojant su talpykla, kai darote pakeitimus savo kodo faile, jums reikės padidinti GET parametro reikšmę vienetu. Žiūrėkite panašaus požiūrio taikymo pavyzdį:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="styles.css?v=1">
<script src="script.js?v=1"></script>
</head>
<body>
</body>
</html>
Antrasis problemos sprendimas
Egzistuoja ir pažangesnis požiūris. Jis susideda iš to, kad prie failų pavadinimų pridedami atsitiktiniai eilutės, pavyzdžiui, štai taip:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="styles.398db7afe3b52e94bb25.css">
<script src="script.1d12c304c284a752cb9a.js"></script>
</head>
<body>
</body>
</html>
Šios eilutės vadinamos maišais. Maiša yra unikali eilutė. Ji apskaičiuojama iš failo turinio specialiu būdu. Tai reiškia, kad kiekvienam tekstui atitinka savo unikalų maišą. Jei failo tekstas buvo pakeistas, tai ir maiša jame bus kitoks ir mums reikės jį pakeisti failo pavadinime.
Žinoma, rankiniu būdu skaičiuoti maišas ir pervadinti failus yra prastas užsiėmimas. Todėl šis požiūris naudojamas tik tada, kai mes turime tam tikrą įrankį, leidžiantį automatiškai apskaičiuoti maišas ir pervadinti failus, taip pat pakeisti failų pavadinimus į naujus HTML failuose. Visa tai leidžia daryti Webpack. To mokysimės viso vadovėlio eigoje.