Kesh uslubidagi o'zgarishlarni saqlash.

Kontaktlar / .htaccess uchun muqobil keshlash usuli

topshirish Golovna Ba'zan brauzerning sahifani keshlashiga yo'l qo'ymaslik kerak bo'lishi mumkin, chunki undagi ma'lumotlar darhol yangilanadi. Tanlangan filtrlar yoki yangi usulda yaratilayotgan boshqa kontent asosida ma'lumotlarni yaratish mumkin. Bir so'z bilan aytganda, kirish dasturini yon tomondan keshlashdan himoya qilish kerak bo'lgan holatlar mavjud.

Bugun biz buni qanday amalga oshirishni o'rganamiz

turli yo'llar bilan

, s

Iltimos, PHP ga yordam bering

HTML yoki .htaccess. HTML-da sahifalarni panjara keshlash Qo'shimcha meta teglar yordamida pul ishlashingiz mumkin.

Endi biz keshni himoya qilishning turli xil variantlarini ko'rib chiqamiz.

Brauzer va proksi-server tomonidan keshlashdan himoya

Sahifalar keshlanishining oldini olish, hatto brauzer orqali ham

Kesh o'rnatilmoqda

qo'shiq soati

brauzer uchun"; ?>

Quyidagi qo'shimcha kod brauzerga hujjatni keshdan qancha saqlash kerakligini aytib berishi mumkin.

brauzer uchun"; ?>

Shundan so'ng kesh yangilanadi.

Proksi-server uchun keshni eng erta soatda sozlash Oldingi kodda bo'lgani kabi deyarli bir xil, faqat proksi-server uchun qo'shish narxi. Qo'shimcha PHP yordamida kesh sahifalarini himoya qiling Amalda, HTML bilan kelgan hamma narsa, faqat ma'lumot sarlavhalar orqali ko'rsatiladi. Mutlaq kesh himoyasini qanday amalga oshirish bo'yicha eksa:

", sana("H:i:s"), "

Shuningdek, qo'shiq soati uchun keshuvatiga ruxsat berishingiz mumkin.

Masalan, pulni 1 yildan kamroq muddatga saqlash joiz. help.htaccess uchun kesh sahifalarini himoya qiling G'oyani amalga oshirishni soddalashtirish uchun hamma narsa bir xil konfiguratsiya yordamida amalga oshirilishi mumkin Apache server

.

Masalan, pulni 1 yildan kamroq muddatga saqlash joiz. Sarlavhaga kesh-nazorat "ommaviy" qo'shiladi G'oyani amalga oshirishni soddalashtirish uchun hamma narsa bir xil konfiguratsiya yordamida amalga oshirilishi mumkin ExpiresActive On ExpiresDefault "kirish va 1 soat"

Visnovok

Saytlarni o'zgartirganda biz ko'pincha sahifalar, CSS fayllari va skriptlar (.js) o'rniga ular brauzer tomonidan keshlanganligi va uzoq vaqt davom eta olmasligi faktiga duch kelamiz.

Bu shuni anglatadiki, o'zgarishlar barcha brauzerlarda aks etishi uchun siz mijozlarni F5 yoki Ctrl + F5 kombinatsiyalariga ulashingiz kerak.

Bir soatdan keyin bir soat cho'zing, shunda hid so'riladi.

Uni tugatish jarayoni zerikarli va tushunarsiz.

Fayllarni bir vaqtning o'zida o'zgartirib, vaziyatdan tezda chiqib ketishingiz mumkin, ammo buni yana qilish oson emas.

Biroq, juda ko'p nomga ega bo'lmaslik va keshlash .css yoki .js fayllarini bizga kerak bo'lgan vaqtda tashlab yuborishning bir usuli bor. ?186485

Va Ctrl + F5 ni abadiy unuting.

">

Gap shundaki, biz .css yoki .js fayllarimizga pseudo-parametrni qo'shamiz, uni vaqti-vaqti bilan o'zgartirish mumkin va shu bilan brauzer keshini tozalaymiz.

Shunday qilib, chiqish kodi uchun kirish endi quyidagicha ko'rinadi: De 186485 etarli kombinatsiyadir, chunki siz bir xil faylni chiqarasiz va brauzer uni yangi psevdo-parametr sifatida izohlaydi. Endi, parametrimizning barcha kirishlarini darhol o'zgartirmaslik uchun biz uni barcha kerakli joylarga ulanadigan PHP fayliga joylashtiramiz:

param.php fayli o'rniga siz quyidagilarni ishlatishingiz mumkin:

Tayyor! Endi faylni o'zgartirganda

param.php

Faylni keshlash chegirmaga ega bo'ladi.

Joomla haqida nima deyish mumkin?

Havola yoki @import orqali ulanganlar ortida qanday CSS fayllari borligini kim biladi - bezovta qilmang.

Umid qilamanki, siz hafsalasiz.

Keyingi faylga qo'shilgan CSS-ning o'zi keshlangan va undan ham yaxshiroq, men ajoyib tarzda aytaman.

  1. Ushbu ma'lumot 6 va boshqa brauzerlarda ishonchli tarzda tasdiqlangan.
  2. Bagatma bunday fayllarni yirtqich likvidli keshlashni yaxshi ko'radi va buning uchun o'ng tomonda birinchi o'rinni egallaydi.
  3. Gapirishdan oldin, aynan shu mexanizmda Opera ko'p hollarda boshqa brauzerlar kabi ravonlikka ega.

Men darhol tan olamanki, Operadagi "super" kesh AJAX texnologiyasidan foydalangan holda juda issiq.

Boshqalar AJAX tizimlariga o'zgartirishlar kiritayotgan bir paytda, Opera eskirib bormoqda.

Bu ular bilan o'ralgan qo'shiq.

Keshuvannya CSS

ALE! Odamlar to'g'ridan-to'g'ri va to'g'ridan-to'g'ri muammolarga duch kelishadi.:

1. Bu odatda noto'g'ri sozlangan Apache serveriga bog'liq bo'lib, natijada sarlavhalar to'liq to'g'ri kelmaydi. Va sarlavhaning orqasida siz fayllarni keshlashingiz mumkin.

Boshlash uchun, birinchi navbatda, qo'shimchalar keshi boshlanadi.

2. Aks holda, fayllarni keshlash kerak bo'lmasa, muammolar paydo bo'ladi. Va sarlavhaning orqasida siz fayllarni keshlashingiz mumkin.

Endi professionallar kimlar uchun daflar bilan raqsga tushishni va HTTP sarlavhalarini haydashni boshlaydilar?

Agar siz ushbu maqolani endigina o'qiyotgan bo'lsangiz, HTTP sarlavhalari bilan ovora bo'lishdan hali ancha uzoqdasiz.

Sizga kuylaymanki, yaqin kelajakda siz bunday muammolarga duch kelmaysiz.

Va shunga qaramay, siz qalbingizning tubiga chuqur kirib borganingiz uchun, biz bu qanday ekanligini qisqacha tushuntiramiz. Tartib tashqi JavaScript fayllarini ehtiyotkorlik bilan keshlaydi va sahifani yangilamaguningizcha yangilanishlarni tekshirmaydi.

CSS sarlavha tomonidan tasdiqlangan.

If-Modified-Since: "satr-satr sanasi" GMT If-None-Match: "o'z xesh-kodi"

CSS haqiqatan ham yangilangan taqdirdagina yana qiziqarli bo'ladi. Boshqasiga

rejimi sahifani yangilashni to'xtatadi.

Shunday qilib, biz yon tomonda ko'rsatilgan ma'lumotlar bazasi tarkibini o'zgartirdik - bu ko'rinmaydi, chunki uni yangilash oson, so'rov yuboradigan narsa:

GET / HTTP/1.1 Xost: xxx.com Agar o'zgartirilgan bo'lsa: aniq sana GMT

Va men javobni olib tashlayman:

Va shunga qaramay, siz qalbingizning tubiga chuqur kirib borganingiz uchun, biz bu qanday ekanligini qisqacha tushuntiramiz. HTTP/1.1 304 O'zgartirilmagan

CSS haqiqatan ham yangilangan taqdirdagina yana qiziqarli bo'ladi. Internet Explorer 8 (IE8)

Internet Explorer JavaScript va CSS uchun If-Modified-Since va If-None-Match so'rovlarini yuboradi, shuning uchun JavaScript va CSS faqat yangilangan bo'lsa o'zgartirilishi mumkin.

Va shunga qaramay, siz qalbingizning tubiga chuqur kirib borganingiz uchun, biz bu qanday ekanligini qisqacha tushuntiramiz. O'sha jaksto Primusov tomonni yangilash.

CSS haqiqatan ham yangilangan taqdirdagina yana qiziqarli bo'ladi. Internet Explorer rejimi, shuningdek, JavaScript va CSS uchun If-Modified-Since va If-None-Match iboralarini quvvatlaydi.

Biroq, siz sahifaning o'zini yangilashni/yangilashni xohlamaysiz, shuning uchun uni majburlamaysiz, shuning uchun js/css yangilanadi, lekin shablon va sahifaning mazmuni yangilanmaydi.

  1. Kontentni yangilash Primus sahifasini yangilashga yordam bermaydi.
  2. Opera 10 va undan yuqori
  3. Menimcha, FireFox o'zini IE ga qaraganda bir oz aqlliroq tutadi, chunki keshlash yoqilganda, u doimo JavaScript yangilanishlarini tekshirmaydi, bu mantiqiy ko'rinadi va hatto JavaScript ham kamdan-kam yangilanadi.
  4. Opera turli xil yangilangan tasvirlarga, JavaScript va CSS-ga qo'shimcha moslashtirish uchun Tasvirlarni tekshirish imkonini beradi, bu esa ortiqcha.

Bundan tashqari, Opera kesh va Primus yangilanishi yoqilganda IE va FF-dan yaxshiroq ishlaydi, shuning uchun menimcha, Opera har doim yon o'rniga yangilanadi va IE va FF sizni baxtli noma'lum narsalardan mahrum qiladi.

  • Sizga va foydali saytlaringizga omad tilaymiz.
  • htaccess keshi, agar mijoz uni qo'llab-quvvatlasa, mahalliy kompyuterdagi veb-sahifa o'rniga saqlanadi;

Brauzer keshini qo'llab-quvvatlash - veb-master resurslarni ko'rish usuli sifatida brauzerlarga maslahatlar beradi.

Brauzer veb-sahifani ko'rsatganda, siz logotip, CSS fayli va boshqa resurslarni kiritishingiz kerak:

Brauzer keshi brauzer allaqachon sotib olgan resurslarni "esda saqlaydi".

Agar siz saytning boshqa tomoniga o'tmoqchi bo'lsangiz, logotip, CSS fayllari va hokazo.

  • Siz yana qiziqishingiz shart emas, chunki brauzer allaqachon ularni "eslab qolgan" (saqlagan).
  • Nima sababdan birinchi tashrif paytida veb-saytga kirish uchun bir soatdan ko'proq vaqt ketadi va keyingi safardan kamroq vaqt ketadi?

Agar siz keshlashni yoqsangiz, veb-sayt fayllari brauzer keshida saqlanadi.

Hikoyalar takroriy nashrlar bilan ko'proq jozibali bo'ladi.

Boshqa saytlar bilan ham xuddi shunday bo'ladi, chunki vikoristlar resurslarni yo'qotadilar.

Brauzeringizda keshni qanday o'chirish mumkin

Keshni oldini olish uchun resurs so'rovlarining sarlavhalarini o'zgartiring;

Kesh strategiyangizni optimallashtiring. So'rov sarlavhasini o'zgartirish Ko'pchilik uchun saytning htaccess-ni keshlashning yagona yo'li veb-serverdagi .htaccess fayliga kod qo'shishdir.

.htaccess faylini saqlang va veb-sahifani yangilang.

Har xil turdagi fayllar uchun kesh soatini qanday o'rnatish kerak

Tanlangan kod uchun vaqt oralig'i bir soatga o'rnatiladi.

Masalan, 1 rik (1 rik) yoki 1 oy (1 oy).

Hidi fayl turlari bilan bog'liq.

Yuqori kod keshdan keyin .jpg fayllarni (tasvirlarni) o'rnatadi. Agar siz buni JPG rasmlari bir oy davomida saqlanishi uchun o'zgartirmoqchi bo'lsangiz, shunchaki "1 rik" ni "1 oy" bilan almashtirasiz. htaccess orqali keshlashning muhimligi ko'rsatilgan va ko'pchilik veb-sahifalar uchun maqbuldir.

.htaccess uchun muqobil keshlash usuli

Eng yaxshi tavsiflangan usul "deb ataladi.

Muddati tugaydi

“Vin ko'pchilik yangi kelganlarga naqd pul olishda yordam beradi.

Keshlashdan foydalanishni osonlashtirganingizdan so'ng, ko'proq quvvatni taklif qiluvchi Cache-Control deb nomlangan boshqa keshlash usulini sinab ko'rishingiz mumkin. Exires usuli serveringizda ishlamasligi mumkin, shuning uchun siz Kesh-nazoratdan foydalanishni xohlashingiz mumkin.

Kesh-nazorat

Bu usul brauzerning kesh sozlamalarini ko'proq nazorat qilish imkonini beradi, lekin barcha sozlamalarni bir marta ro'yxatdan o'tkazish osonroq bo'lishi muhimdir.

.htaccess fayli uchun wiki misoli:

Aksariyat statik aktivlar uchun №1 oy

Sarlavhalar to'plami kesh-nazorat "max-age = 2592000, ommaviy"

Yuqori ko'tarilgan kod Kesh-nazorat sarlavhasini fayl turiga belgilaydi. Kesh-nazorat qanday ishlaydi?»

Keling, htaccess brauzeridagi eng muhim keshlash kodini ko'rib chiqaylik: Aksariyat statik aktivlar uchun №1 oy, Bu qator shunchaki eslatma., .htaccess fayli # belgisi bilan boshlanadigan qatorlarni e'tiborsiz qoldiradi., Ushbu eslatma tavsiya etiladi, chunki sizda fayllarni keshlash uchun yechim sifatida turli xil ma'lumotlar to'plami bo'lishi mumkin: Ko'p fol ochadiganga o'xshaydi, Agar fayl ushbu turlardan biri bo'lsa, biz uni yaratamiz. Bu qatordagi eng muhimlari har xil turdagi fayllarning yangi ro'yxatidagilardir ( CSS«:

Exires usuli serveringizda ishlamasligi mumkin, shuning uchun siz Kesh-nazoratdan foydalanishni xohlashingiz mumkin.

JS

  • JPEG PNG va hokazo.
  • ) va keshlash ko'rsatmalari ushbu fayl turlari bilan cheklanganligiga ishonch hosil qiling. Misol uchun, agar siz JPG fayllarni ma'lum vaqt davomida keshda saqlashni xohlamasangiz, o'chirishingiz mumkin " JPG
  • JPEG ". Agar siz HTML qo'shmoqchi bo'lsangiz, uni ushbu qatorga kiritishingiz kerak

Htaccess orqali keshlashning ushbu qatori kod blokini tugatuvchi operator tomonidan yopiladi.

Zagalna muammo keshuvannya

Agar siz ko'p vaqt va undan ko'p vaqt talab qiladigan rasmlar ro'yxatini tuzsangiz, esda tutingki, sahifalaringizga o'zgartirishlar kiritganingizda, ular barcha treyderlarga ko'rinmasligi mumkin. Xo'sh, koristuvachlar haqiqiy fayllarga emas, balki keshlash uchun kerakli fayllarga qanday murojaat qilishadi? Bu siz vaqti-vaqti bilan tahrir qiladigan fayl (

masalan - CSS fayli

), keyin siz kesh muammosini qo'shimcha raqamli URL biti bilan hal qilishingiz mumkin.

Raqamli URL bitlari

Keshlanmagan yangi fayl resursini olish noyob nom mavjudligi sababli mumkin.

Misol uchun, agar CSS fayli "main.css" deb nomlangan bo'lsa, biz uni "main_1.css" deb atashimiz mumkin.

Endi biz uning nomini o'zgartirdik, biz faylni "main_2.css" deb nomlashimiz mumkin.
  • Bu vaqti-vaqti bilan o'zgarib turadigan fayllar uchun foydalidir.
  • To'g'ri sozlangan keshlash unumdorlikka katta foyda keltiradi, trafikni tejaydi va serverdagi xarajatlarni kamaytiradi va ko'plab saytlarda keshlash o'zaro aloqa resurslarining sinxronizatsiyasiga olib keladigan poyga yaratishdan unchalik uzoq bo'lmagan joyda amalga oshiriladi.
  • Keshuvannyaning eng qisqa amaliyotlarining aksariyati ikkita naqshdan biriga qo'llanilishi muhimdir:

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Kesh-nazorat: maksimal yosh = 31536000

URL o'rniga URL o'zgarmaydi, shuning uchun... : Brauzer yoki CDN saytdagi resursni osongina keshlashi mumkin

Maksimal yoshdagi vazifalar uchun yosh bo'lgan keshlangan kontentni server bilan maslahatlashmasdan vikorizatsiya qilish mumkin : Storinka

URL o'rniga URL o'zgarmaydi, shuning uchun... : Hey, erkaklarga "/script-v1.js", "/styles-v1.css" va "/cats-v1.jpg" kerak 10:24

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Naqd pul

Men bo'shman, siz uchun nima yaxshi, Server?

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : 10:24 Server OK, hid o'qi. Server Gapirishdan oldin, Cash, Ikh varto vikoristati taqdirga cho'ziladi, endi yo'q.

URL o'rniga URL o'zgarmaydi, shuning uchun... : 10:25

Maksimal yoshdagi vazifalar uchun yosh bo'lgan keshlangan kontentni server bilan maslahatlashmasdan vikorizatsiya qilish mumkin : Rahmat! 10:25

URL o'rniga URL o'zgarmaydi, shuning uchun... : Xayr! 10:25

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Kelgusi kun

URL o'rniga URL o'zgarmaydi, shuning uchun... : Hey, erkaklarga "/skript-

v2

.js", "/styles-

Aksariyat server tomonidagi ramkalarda bu kabi ishlarni osonlashtiradigan vositalar mavjud (Django uchun men Manifest Static Files Storagedan foydalanaman);

Node.js-da juda kichik kutubxonalar ham mavjud, chunki bir xil vazifalar mavjud, masalan, gulp-rev.

Biroq, bu naqsh turli maqolalar va blog postlaridagi nutqlar uchun mos emas.

Ularning URL manzilini versiya qilib boʻlmaydi, lekin oʻrniga oʻzgartirish mumkin.
  • Jiddiy ravishda, grammatika va tinish belgilari bilan tez-tez muammolarga duch kelaman, shuning uchun uni tezda yangilash qobiliyatiga muhtojman.
  • Shakl № 2: o'zgarishlar avval serverda ko'rib chiqilishi kerak bo'lgan tarkib

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Kesh-nazorat: kesh yo'q

URL o'rniga URL o'zgarmaydi, shuning uchun... : URL manzilini o'zgartirish o'rniga, iltimos...

Maksimal yoshdagi vazifalar uchun yosh bo'lgan keshlangan kontentni server bilan maslahatlashmasdan vikorizatsiya qilish mumkin : Versiya mahalliy keshlangan bo'lsa ham, serverni kiritmasdan undan qutulolmaysiz.

URL o'rniga URL o'zgarmaydi, shuning uchun... : Hey, menga "/about/" va "/sw.js" 11:32 bo'sh joy kerak

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Men sizga hech qanday yordam bera olmayman.

Servermi? 11:32

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Ha.

URL o'rniga URL o'zgarmaydi, shuning uchun... : Naqd pul, ularni siz bilan sinab ko'ring, lekin vikoristannydan oldin, mendan iching.

Maksimal yoshdagi vazifalar uchun yosh bo'lgan keshlangan kontentni server bilan maslahatlashmasdan vikorizatsiya qilish mumkin : 11:33

URL o'rniga URL o'zgarmaydi, shuning uchun... : Bu to'g'ri! 11:33

Maksimal yoshdagi vazifalar uchun yosh bo'lgan keshlangan kontentni server bilan maslahatlashmasdan vikorizatsiya qilish mumkin : Rahmat! 11:33

URL o'rniga URL o'zgarmaydi, shuning uchun... : Kelgusi kunda

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Hey, men "/about/" va "/sw.js" ni yangilamoqchiman 09:46

Xvilinka.

Server, mening nusxalarim yaxshimi?

/about/ nusxasi dushanbadan, /sw.js esa kechagidan.

09:46

Agar bizda birinchi naqsh uchun infratuzilma mavjud bo'lmasa, bu odatiy hol emas, lekin 2 naqshdagi o'rtacha kirishlar bilan ham muammolar paydo bo'lishi mumkin. Natijada, oraliq variant qo'llaniladi: qisqa maksimal yosh va o'zgaruvchan tarkib.

Bu jirkanch kelishuv.

Kontentni o'zgartirishdan maksimal yoshni tanlash odatda noto'g'ri tanlovdir

Va, afsuski, kengaytmalar mavjud emas, chunki dumbani Github sahifalarida topish mumkin.

  • Ochish:
  • /maqola/
  • /styles.css

/script.js

Server sarlavhasidan:

  • Kesh-nazorat: qayta tekshirish kerak, maksimal yosh = 600
  • Buning o'rniga URL o'zgartirildi
  • Brauzer 10 daqiqa davomida so'nggi versiyaning keshlangan versiyasiga ega bo'lgani uchun u server bilan maslahatlashmasdan yuklab olinadi.

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Bunday kesh mavjud emasligi sababli, vikoristdan iloji bo'lsa, If-Modified-Since yoki If-None-Match bilan cheklash so'raladi.

URL o'rniga URL o'zgarmaydi, shuning uchun... : Hey, erkaklarga "/article/", "/script.js" va "/styles.css" kerak 10:21

Maksimal yoshdagi vazifalar uchun yosh bo'lgan keshlangan kontentni server bilan maslahatlashmasdan vikorizatsiya qilish mumkin : Menda hech narsa yo'q, senchi, Server?

URL o'rniga URL o'zgarmaydi, shuning uchun... : 10:21

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Muammo yo'q, o'q hidlaydi.

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Esingizda bo'lsin, Kesh: ularni eng yaqin o'nta xvilin bilan vikorizatsiya qilish mumkin.

URL o'rniga URL o'zgarmaydi, shuning uchun... : 10:22

Maksimal yoshdagi vazifalar uchun yosh bo'lgan keshlangan kontentni server bilan maslahatlashmasdan vikorizatsiya qilish mumkin : Ê!

URL o'rniga URL o'zgarmaydi, shuning uchun... : 10:22

Naqsh № 1: o'zgarmas tarkib va ​​uzoq maksimal yoshdagi kesh : Rahmat! 10:22

Hey, menga yana "/article/", "/script.js" va "/styles.css" kerak 10:28

Voy, men chalkashib ketdim, lekin men "/styles.css" ni behuda sarfladim, aks holda menda hamma narsa bor, harakat qilib ko'ring.

max-age uzatish soatiga o'rnatiladi, shuning uchun barcha resurslar bitta manzilning bir qismi sifatida uzatilganligi sababli, bu muddat bir vaqtning o'zida tugaydi, aks holda sinxronizatsiya qilishning kichik imkoniyati mavjud.

Agar sizda JavaScript yoki boshqa uslublardan foydalanmaydigan sahifalaringiz bo'lsa, ularning kesh shartlari sinxronlashtirilmaydi.

Va bundan ham yomoni, brauzer HTML, CSS va JS bir-biriga bog'liqligini bilmasdan doimiy ravishda keshdan tortib oladi, shuning uchun siz ushbu ro'yxatlardan birini xursandchilik bilan tortib olishingiz va qolgan hamma narsani unutishingiz mumkin.

Ushbu omillarning barchasini bir vaqtning o'zida hisobga olgan holda, oldini olish mumkin bo'lmagan versiyalarning paydo bo'lish ehtimoli yuqori ekanligini tushunishingiz kerak.

Mijoz uchun natija noto'g'ri yon sxemasi yoki boshqa muammolar bo'lishi mumkin.

Kichik nosozliklardan tortib, nomaqbul tarkibgacha.

Yaxshiyamki, aholining favqulodda chiqish joyi bor.

Inodning yangilangan tomoni

Sayt yangilanish jarayoni bilan mashg'ul bo'lganligi sababli, brauzerlar har doim maksimal yoshni e'tiborsiz qoldirib, server tomonidan qayta tekshirishni amalga oshiradilar.

  • Agar egasining maksimal yoshi bilan bog'liq muammo bo'lsa, sahifaning oddiy yangilanishi hamma narsani tuzatishi mumkin.
  • Ale, tushunarli, qoshiqlar topilgandan so'ng, qamal hali ham yo'qoladi va saytingiz uchun sozlash boshqacha bo'ladi.

Xizmat ko'rsatuvchi xodim bu xatolardan omon qolishi mumkin

Masalan, sizda shunday xizmat xodimi bor:

Const versiyasi = "2";

self.addEventListener("o'rnatish", voqea => ( event.waitUntil(caches.open(`static-$(version)`))) .then(kesh => cache.addAll([ "/styles.css", "/ skript .js "]))); ));

Afsuski, keshlash imkoniyatlari Chrome/Opera-da va faqat Firefox-da qo'llab-quvvatlanmaydi, lekin buni o'zingiz qilishingiz mumkin:

Self.addEventListener("o'rnatish", voqea => ( event.waitUntil(caches.open(`static-$(version)`))) .then(kesh => Promise.all([ "/styles.css", "/ skript .js" ].map(url => ( // kesh-bust tasodifiy so'rovlar qatori yordamida qaytariladi.(`$(url)?$(Math.random())`)).then(response => ( / / 404, 500 va hokazolarda muvaffaqiyatsizlikka uchrasa, agar (!response.ok) xato bo'lsa("Yaxshi emas");return cache.put(url, javob);

Ushbu ilova uchun men qo'shimcha tasodifiy raqam uchun keshni qayta o'rnatdim yoki siz davom eting va katlanganda tarkibga xeshni qo'shishingiz mumkin (bu sw-precache ishlatadiganlarga o'xshaydi).

Bu qo'shimcha JavaScript-dan foydalangan holda birinchi naqshni amalga oshirishning bir turi, lekin brauzerlar yoki CDN bilan emas, balki faqat xizmat ko'rsatuvchi xodim bilan ishlaydi.

Xizmat xodimlari va HTTP keshi bir vaqtning o'zida ajoyib ishlaydi, ularni jang qilish uchun bezovta qilmang!

Ma'lumki, siz xizmat ko'rsatuvchi xodimlaringizning kesh qoidalarini chetlab o'tishingiz mumkin, aksincha, muammoning ildiziga kirishingiz mumkin.

To'g'ri sozlangan keshlash nafaqat xizmat ko'rsatuvchi xodimning ishini osonlashtiradi, balki xizmat ko'rsatuvchi ishchilarni (Safari, IE/Edge) qo'llab-quvvatlamaydigan brauzerlarga ham yordam beradi, balki CDN-dan maksimal darajada tortib olishga imkon beradi.

To'g'ri keshlash sarlavhalari xizmat ko'rsatuvchi xodimning yangilanishini sezilarli darajada soddalashtirishi mumkin.

Const versiyasi = "23";

self.addEventListener("o'rnatish", voqea => ( event.waitUntil(caches.open(`static-$(version)`))) .then(kesh => cache.addAll([ "/", "/script-f93bca2c js", "/styles-a837cb1e.css", "/cats-0e9a2ef4.jpg" ]))); )))

Bu erda men 2-sonli naqsh (serverni qayta tekshirish) bilan ildiz tomonini va №1 naqsh (o'zgarmas tarkib) bilan resurs omborini keshlashdim.

max-age ko'pincha o'zgarishi kutilayotgan kontent uchun noto'g'ri tanlovdir, lekin abadiy emas.

Masalan, asl maksimal yosh statistikasi uchta qatordan iborat.

Poyga holati muammo emas, chunki yangi keshlash namunasi (CSS, JS & tasvirlar № 1 naqsh tomonidan qo'llaniladi - doimiy kontent) qo'llaniladigan tomonda hech qanday omonat yo'q, boshqa barcha naqshlar zafarli emas.

Bu naqsh men xotirjamlik bilan mashhur maqola yozayotganimni anglatadi va mening CDN (Cloudflare) serverdan olib tashlanishi mumkin, ya'ni maqola yangilanmaguncha va foydalanuvchilar uchun mavjud bo'lgunga qadar men uch dollar to'lashga tayyorman.

Kompaniyani rivojlantirish sxemasi ruxsat berish uchun to'g'ri ajratilgan ...