Problēma ar kešatmiņu pārlūkprogrammās
Pārlūkprogramma kešo pievienotās CSS stilu datnes, JavaScript skriptus un attēlus. Kešošana nozīmē, ka pievienotās datnes pārlūkprogramma lejupielādē tikai pirmo reizi, kad lietotājs ierodas vietnē. Nākamajos apmeklējumos šīs datnes vairs netiks lejupielādētas atkārtoti, bet tiks ņemtas no pārlūkprogrammas kešatmiņas.
Kešošana ir noderīga. Tā ir radīta, lai palielinātu vietnes ielādes ātrumu. Galu galā pārlūkprogrammai ir ātrāk paņemt datni no savas krātuves, nekā to lejupielādēt katru reizi no interneta.
Tomēr par ātrumu nākas maksāt ērtību trūkumu izstrādes laikā. Lieta tāda, ka, ja jūs kaut ko mainīsiet savā kodā un pēc tam ievietosiet izmaiņas uz hostinga - visi lietotāji, kuri jau ir apmeklējuši jūsu vietni, būs ar veco kešoto koda kopiju.
Pirmā problēmas risinājuma metode
Lai cīnītos pret šādu rīcību, ir katru reizi jāpārdēvē mainītās datnes. Prakšē tas nav ērti, tāpēc tiek izmantots viltīgs paņēmiens. Tā būtība ir tāda, ka, pievienojot datni, aiz datnes nosaukuma liekam jautājuma zīmi, vienādības zīmi un sava skripta versijas numuru. Šādu konstrukciju sauc par GET parametru.
GET parametra klātbūtne datnes nosaukumā "nesabojā" ceļu no servera viedokļa, joprojām norādot uz to pašu datni. Bet no pārlūkprogrammas viedokļa GET parametra maiņa liek pārlūkprogrammai uzskatīt, ka datnes ceļš ir mainījies, un lejupielādēt datni no jauna.
Lai cīnītos pret kešatmiņu, kad jūs veicat izmaiņas savā koda datnē, jums būs jāpalielina GET parametra vērtība par vienu. Skatieties šīs pieejas piemēru:
<!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>
Otrā problēmas risinājuma metode
Pastāv arī progresīvāka pieeja. Tā ir tāda, ka datņu nosaukumiem tiek pievienotas nejaušas virknes, piemēram, šādi:
<!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>
Šīs virknes sauc par hešiem. Hešs ir unikāla virkne. To aprēķina no datnes satura īpašā veidā. Tas nozīmē, ka katram tekstam atbilst savs unikālais hešs. Ja datnes teksts ir mainījies, tad arī hešs tam būs cits, un mums būs jāmaina tas datnes nosaukumā.
Protams, ar rokām aprēķināt hešus un pārdēvēt datnes ir slikts nodarbojums. Tāpēc šī pieeja tiek izmantota tikai tad, ja mums ir kāds instruments, kas ļauj automātiski aprēķināt hešus un pārdēvēt datnes, kā arī mainīt datņu nosaukumus uz jaunajiem HTML datnēs. To visu ļauj darīt Webpack. Mēs to mācīsimies visā apmācības materiāla garumā.