බ්රවුසරවල කෑෂ් ගැටලුව
බ්රවුසරය CSS ශෛලීන්, JavaScript ස්ක්රිප්ට් සහ රූප සම්බන්ධ කළ ගොනු කෑෂ් කරයි. කෑෂ් කිරීම යනු සම්බන්ධ කළ ගොනු බ්රවුසරය බාගත කරන්නේ පරිශීලකයා වෙබ් අඩවියට පළමු වරට පිවිසෙන විට පමණක් බවයි. පසුව පිවිසීම් වලදී මෙම ගොනු නැවත බාගත නොකර බ්රවුසරයේ කෑෂ් එකෙන් ගනු ලැබේ.
කෑෂ් කිරීම ප්රයෝජනවත් ය. එය වෙබ් අඩවිය බාගත වීමේ වේගය වැඩි කිරීම සඳහා සාදා ඇත. බ්රවුසරයට එහි ගබඩාවෙන් ගොනුව ගැනීම සෑම විටම අන්තර්ජාලයෙන් බාගත කිරීමට වඩා වේගවත් ය.
කෙසේ වෙතත්, වේගය සඳහා ගෙවිය යුත්තේ සංවර්ධනය කිරීමේදී අපහසුවෙන් ය. ප්රශ්නය වන්නේ ඔබ ඔබේ කේතයේ යමක් වෙනස් කර පසුව වෙනස්කම් හොස්ටින් කරන ලද පසු, ඔබේ වෙබ් අඩවියට දැනටමත් පිවිසි සියලුම පරිශීලකයන්ට පැරණි කෑෂ් කරන ලද කේත පිටපතක් තිබීමයි.
ගැටලුවට පළමු විසඳුම
මෙම හැසිරීමට ප්රතිරෝධය දැක්වීම සඳහා වෙනස් කරන ලද ගොනු සෑම විටම නම් වෙනස් කළ යුතුය. ප්රායෝගිකව මෙය අපහසු බැවින් උපක්රමශීලී ක්රමයක් භාවිතා කරයි. එහි සාරය නම්, ගොනුව සම්බන්ධ කිරීමේදී ගොනු නමට පසුව ප්රශ්න ලකුණ, සමාන ලකුණ සහ ඔබේ ස්ක්රිප්ට් අනුවාද අංකය යොදනු ලැබේ. එවැනි ඉදිකිරීමක් GET පරාමිතිය ලෙස හැඳින්වේ.
ගොනු නමේ GET පරාමිතියක් තිබීම සර්වරයේ දෘෂ්ටි කෝණයෙන් "විනාශ නොකර" එම ගොනුවටම යොමු වේ. නමුත් බ්රවුසරයේ දෘෂ්ටි කෝණයෙන් GET පරාමිතිය වෙනස් කිරීම බ්රවුසරයට ගොනුවේ මාර්ගය වෙනස් වී ඇති ලෙස සලකා ගොනුව නැවත බාගත කිරීමට බල කරයි.
කෑෂ් එකට එරෙහිව සටන් කිරීම සඳහා, ඔබ ඔබේ කේත ගොනුවේ වෙනස්කම් සිදු කරන විට, ඔබට GET පරාමිතියේ අගය එකකින් වැඩි කළ යුතුය. මෙවැනි ප්රවේශයක යෙදුමේ උදාහරණය බලන්න:
<!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>
ගැටලුවට දෙවන විසඳුම
තවත් දියුණු ප්රවේශයක් ද පවතී. එය නම් ගොනු නම් වලට අහඹු තන්තු එකතු කිරීමයි, උදාහරණයක් ලෙස, මෙසේය:
<!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>
මෙම තන්තු හැෂ් ලෙස හැඳින්වේ. හැෂ් යනු අද්විතීය නූලකි. එය විශේෂ ආකාරයකින් ගොනුවේ අන්තර්ගතයෙන් ගණනය කෙරේ. මෙයින් අදහස් කරන්නේ සෑම පෙළකටම එහිම අද්විතීය හැෂ් එකක් ඇති බවයි. ගොනුවේ පෙළ වෙනස් කර ඇත්නම්, එහි හැෂ් එක වෙනස් වන අතර අපි එය ගොනු නමේ වෙනස් කළ යුතුය.
ඇත්ත වශයෙන්ම, හැෂ් ගණනය කිරීම සහ ගොනු නම් වෙනස් කිරීම සිදු කිරීම සුදුසු කාර්යයක් නොවේ. එමනිසා මෙම ප්රවේශය භාවිතා වන්නේ අප සතුව හැෂ් ස්වයංක්රීයව ගණනය කිරීමට සහ ගොනු නම් වෙනස් කිරීමට, මෙන්ම HTML ගොනු වල නව ගොනු නම් වෙනස් කිරීමට ඉඩ සලසන යම් උපකරණයක් තිබේ නම් පමණි. Webpack මේ සියල්ල කිරීමට ඉඩ සලසයි. අපි මෙය පාඨමාලාව පුරාවට ඉගෙන ගනිමු.