Sahifa keshi, CDN lar va rozilik bannerlari: notoʻgʻri rozilik holatini koʻrsatishdan qanday qochish kerak

Tez sahifalar, notoʻgʻri rozilik

Sahifa keshlash tezlik va hosting xarajatlari uchun qilishingiz mumkin boʻlgan eng yaxshi ishlardan biri. Shu bilan birga, u rozilik sozlamalarini sezdirmay buzishning eng oson yoʻllaridan biri. Kesh aynan unga aytilgan narsani bajaradi: javobni bir marta saqlaydi va bir xil kalitga mos keladigan hammaga beradi. Saqlangan javobda bir tashrif buyuruvchining rozilik tanlovi yoki joylashuviga xos biror narsa boʻlsa, keyingi tashrif buyuruvchi ham uni oladi.

Ushbu qoʻllanma nashriyotchi sayti oldida odatda turadigan keshlash qatlamlarini — CDN edge keshlari, toʻliq sahifa keshlash plaginlari, reverse proxy lar, service worker lar va brauzerning oʻzi — hamda ularning har birini notoʻgʻri rozilik tajribasini koʻrsatishdan qanday saqlashni qamrab oladi.

Asosiy qoida: rozilikni keshlangan HTML dan tashqarida saqlang

Eng xavfsiz arxitektura keshlangan HTML sahifani rozilik jihatidan neytral qilib shakllantiradi. Sahifada CMP yuklagichi va teglaringiz bloklangan yoki kutish holatida boʻladi, lekin shu tashrif buyuruvchi haqida hech qanday qaror boʻlmaydi. Keyin CMP brauzerda ishlaydi, saqlangan tanlovni oʻqiydi, bannerni koʻrsatish-koʻrsatmaslikni hal qiladi va teglarni shunga qarab ishga tushiradi.

Muammolar server rozilik boʻyicha qarorlarni render vaqtida qabul qilganda boshlanadi, masalan:

Bu sahifa keshlangach, birinchi tashrif buyuruvchining holati hammaning holatiga aylanadi. Kuzatuvni rad etgan tashrif buyuruvchi teglari allaqachon faol sahifani olishi mumkin, yoki yangi tashrif buyuruvchi bannerni umuman koʻrmasligi mumkin, chunki keshdagi nusxa uni allaqachon yopgan kishidan olingan.

Nega “Vary: Cookie” kamdan-kam yechim boʻladi

Tashrif buyuruvchiga xos kontent uchun darslikdagi yechim keshlarga cookie sarlavhasi boʻyicha farqlanishni aytishdir. Amalda tashrif buyuruvchilar noyob qiymatli koʻplab cookie larni olib yuradi, shuning uchun butun cookie sarlavhasi boʻyicha farqlash odatda kesh hit darajangizni deyarli nolga tushiradi. Baʼzi CDN lar kesh kalitini oʻrniga bitta cookie qiymatidan yasashga ruxsat beradi; rozilik cookie fayli ehtimoliy holatlari soni kam boʻlsa, bu ishlaydi, ammo murakkablik qoʻshadi va keshlangan nusxalar sonini baribir koʻpaytiradi. Qarorni brauzerga oʻtkazish oddiyroq va keshni samarali saqlaydi.

Edge dagi geografiya

Koʻplab nashriyotchilar hududga qarab turli bannerlar koʻrsatadi: EI va Buyuk Britaniya uchun opt-in banneri, AQSh shtatlari uchun opt-out bildirishnomasi, boshqa joylarda esa yengilroq narsa. Server variantni tashrif buyuruvchining IP manzilidan tanlasa va bu sahifa keshlansa, yevropalik oʻquvchi keshlangan AQSh sahifasini olishi mumkin yoki aksincha.

Buni uch namuna bartaraf etadi:

  1. Mijoz tomonida geolokatsiya. CMP hududni brauzerda aniqlasin, shunda keshlangan HTML hamma uchun bir xil qoladi.
  2. Kesh kalitida mamlakat. Qarorni edge da qabul qilishingiz kerak boʻlsa, CDN taqdim etadigan mamlakat kodini kesh kalitiga qoʻshing. Har bir mamlakat uchun bitta keshlangan nusxa olasiz, bu oldindan aytib boʻladigan holat.
  3. Keshlanmaydigan edge mantiqi. Hududiy qarorni edge funksiyasida bajaring, u aks holda keshlangan sahifaga kichik, keshlanmaydigan qiymat kiritadi.

Qaysi birini tanlamang, hujjatlashtiring. Geo xatolarni takrorlash eng qiyin xatolardan, chunki ular faqat bir joydagi tashrif buyuruvchilarda, boshqa joydagi kishi keshlagan sahifani olgandagina paydo boʻladi.

CMP skriptining oʻzini keshlash

CMP yuklagichini uzoq muddat keshlash unumdorlik uchun yaxshi, ammo sozlamalar oʻzgarganda uning kamchiligi bor. Vendorlar, maqsadlar yoki banner matnini yangilasangiz va skript yoki sozlamalar fayli bir yilga keshlangan boʻlsa, baʼzi tashrif buyuruvchilar eski versiyani koʻrishda davom etadi. CMP fayllarini qanday versiyalashini tekshiring: oʻzgaruvchan fayl nomi yoki versiya parametri oʻzgarishlarni darhol joriy qilib, keshni agressiv ishlatishga imkon beradi. Shuningdek, CMP ularga tayansa, oʻzingizning CDN ingiz uchinchi tomon skript URL laridan query qatorlarini olib tashlamasligini tasdiqlang.

Service worker lar va oflayn keshlar

Progressive web app qatlamiga ega saytlar koʻpincha HTML ni service worker da keshlaydi. Xuddi shu qoida qoʻllanadi: muayyan rozilik qarorini aks ettiradigan sahifani hech qachon saqlamang. Rozilik bilan bogʻliq endpoint lar va sozlamalar markazi sahifalarini service worker keshidan chiqarib tashlang va yangi CMP sozlamalarini doim olish mumkinligiga ishonch hosil qiling.

Orqaga/oldinga kesh (back/forward cache)

Zamonaviy brauzerlar yaqinda koʻrilgan sahifalarni xotirada saqlaydi, shunda “orqaga” tugmasi ularni darhol tiklaydi. Tashrif buyuruvchi bir sahifada sozlamalar markazini ochsa, roziligini qaytarib olsa, soʻng orqaga bosa, tiklangan sahifada teglar hali ham avvalgi holatdan ishlab turishi mumkin. pageshow hodisasini tinglang va uning persisted xususiyatini tekshiring: sahifa shu keshdan tiklanganda, saqlangan rozilik holatini qayta oʻqing va teglarni unga mos ravishda toʻxtating yoki ishga tushiring.

Sinov tartibi

Asosiy xulosalar

← Blog Hammasini o'qish →