Síðuskyndiminni, CDN og samþykkisborðar: Hvernig má forðast að birta ranga samþykkisstöðu
Hraðar síður, rangt samþykki
Skyndiminni síðna er eitt það besta sem þú getur gert fyrir hraða og hýsingarkostnað. Það er líka ein auðveldasta leiðin til að skemma samþykkisuppsetningu án þess að taka eftir því. Skyndiminni gerir nákvæmlega það sem því er sagt: það geymir svar einu sinni og birtir það öllum sem passa við sama lykil. Ef það geymda svar inniheldur eitthvað sérstakt fyrir samþykkisval eða staðsetningu eins gests fær næsti gestur það líka.
Þessi leiðarvísir fjallar um skyndiminnislögin sem venjulega sitja fyrir framan vef útgefanda — CDN edge-skyndiminni, viðbætur fyrir skyndiminni heilla síðna, reverse proxy, service worker og vafrann sjálfan — og hvernig komið er í veg fyrir að hvert þeirra birti ranga samþykkisupplifun.
Grundvallarreglan: Haltu samþykki utan skyndiminnis-HTML
Öruggasta uppbyggingin skilar HTML-síðunni í skyndiminni hlutlausri gagnvart samþykki. Síðan inniheldur CMP-hleðslutækið og tögin þín í lokuðu eða biðstöðu, en enga ákvörðun um þennan tiltekna gest. CMP keyrir síðan í vafranum, les geymda valið, ákveður hvort borðinn er sýndur og losar tög í samræmi við það.
Vandamálin byrja þegar þjónninn tekur samþykkisákvarðanir við birtingu, til dæmis:
- þema eða viðbót sem prentar auglýsinga- eða greiningartög aðeins þegar samþykkisvafrakaka er til staðar;
- þjónskóði sem sleppir borðamerkingunni fyrir gesti sem hafa þegar valið;
- sniðmát sem fella samþykkisstöðu gests inn í breytu í inline skriftu.
Þegar sú síða er komin í skyndiminni verður staða fyrsta gestsins að stöðu allra. Gestur sem hafnaði rekningu getur fengið síðu þar sem tög eru þegar virk, eða nýr gestur sér kannski aldrei borða því skyndiminnisafritið kom frá einhverjum sem hafði þegar lokað honum.
Hvers vegna “Vary: Cookie” er sjaldan svarið
Kennslubókarlausnin fyrir efni á hvern gest er að segja skyndiminni að vera mismunandi eftir cookie hausnum. Í reynd bera gestir margar vafrakökur með einstökum gildum, svo ef látið er breytast eftir öllum cookie hausnum fellur hlutfall skyndiminnistreffa yfirleitt næstum niður í núll. Sum CDN leyfa þér að byggja skyndiminnislykilinn á einu gildi vafraköku í staðinn, sem er framkvæmanlegt ef samþykkisvafrakakan hefur fá möguleg stöðugildi, en það bætir við flækjustigi og margfaldar samt fjölda afrita í skyndiminni. Að færa ákvörðunina í vafrann er einfaldara og heldur skyndiminninu skilvirku.
Landfræðileg staðsetning við jaðarinn
Margir útgefendur sýna mismunandi borða eftir svæðum: borða með samþykki (opt-in) fyrir ESB og Bretland, afþökkunartilkynningu fyrir ríki Bandaríkjanna og eitthvað léttara annars staðar. Ef þjónninn velur afbrigðið út frá IP-tölu gestsins og sú síða fer í skyndiminni getur evrópskur lesandi fengið bandaríska síðu úr skyndiminni, eða öfugt.
Þrjú mynstur forðast þetta:
- Staðsetning á biðlarahlið. Láttu CMP ákvarða svæðið í vafranum, svo HTML í skyndiminni haldist eins fyrir alla.
- Land í skyndiminnislyklinum. Ef þú verður að ákveða við jaðarinn skaltu setja landskóðann sem CDN-ið þitt veitir í skyndiminnislykilinn. Þá færðu eitt afrit í skyndiminni fyrir hvert land, sem er fyrirsjáanlegt.
- Edge-rökfræði án skyndiminnis. Keyrðu svæðisákvörðunina í edge-falli sem setur lítið gildi án skyndiminnis inn í síðu sem annars er í skyndiminni.
Hvað sem þú velur, skjalfestu það. Landfræðivillur eru meðal þeirra erfiðustu að endurskapa, því þær birtast aðeins gestum á einum stað sem fá síðu sem einhver annars staðar setti í skyndiminni.
Að setja CMP-skriftuna sjálfa í skyndiminni
Að geyma CMP-hleðslutækið lengi í skyndiminni er gott fyrir afköst en hefur kostnað þegar stillingar breytast. Ef þú uppfærir söluaðila, tilgang eða texta borðans og skriftan eða stillingaskráin er í skyndiminni í eitt ár munu sumir gestir áfram sjá gömlu útgáfuna. Athugaðu hvernig CMP-kerfið þitt útgáfumerkir skrár sínar: skráarheiti eða útgáfubreyta sem breytist gerir þér kleift að nota skyndiminni ríkulega en samt koma breytingum út strax. Staðfestu líka að þitt eigið CDN fjarlægi ekki query strengi úr slóðum þriðja aðila skripta ef CMP reiðir sig á þá.
Service worker og ónettengd skyndiminni
Vefir með progressive web app lag geyma oft HTML í service worker. Sama regla gildir: geymdu aldrei síðu sem endurspeglar tiltekna samþykkisákvörðun. Útilokaðu endapunkta tengda samþykki og síður stillingamiðstöðvarinnar frá skyndiminni service worker og tryggðu að alltaf sé hægt að sækja nýjar CMP-stillingar.
Back/forward cache
Nútímavafrar geyma nýlega heimsóttar síður í minni svo að til baka hnappurinn endurheimti þær samstundis. Ef gestur opnar stillingamiðstöðina á einni síðu, afturkallar samþykki og ýtir síðan á til baka getur endurheimta síðan enn haft tög í gangi frá því áður. Hlustaðu á pageshow atburðinn og athugaðu persisted eiginleika hans: þegar síða er endurheimt úr þessu skyndiminni skaltu lesa geymda samþykkisstöðu aftur og stöðva eða ræsa tög til samræmis.
Prófunarrútína
- Hladdu síðu í hreinni lotu, hafnaðu, hladdu svo annarri síðu og staðfestu að engin rekningartög fari af stað.
- Endurtaktu með öðrum hreinum vafra og staðfestu að borðinn birtist, sem sannar að hann var ekki fjarlægður með skyndiminni.
- Athugaðu svarhausa til að sjá hvort síður eru birtar úr skyndiminni og berðu saman HTML með og án samþykkisvafraköku — það ætti að vera eins.
- Prófaðu frá að minnsta kosti tveimur svæðum eftir að skyndiminnið hefur verið hreinsað og aftur eftir að það hefur hitnað.
- Afturkallaðu samþykki, notaðu til baka hnappinn og staðfestu að tög stöðvist.
Lykilatriði
- HTML í skyndiminni ætti að vera hlutlaust gagnvart samþykki; láttu CMP ákveða í vafranum.
- Forðastu að láta skyndiminni breytast eftir öllum cookie hausnum; það eyðileggur treffhlutfallið.
- Ef borðar eru mismunandi eftir svæðum skaltu ákveða á biðlarahlið eða bæta landinu við skyndiminnislykilinn.
- Útgáfumerktu CMP-skrár svo langur líftími skyndiminnis tefji ekki stillingabreytingar.
- Taktu á service worker og back/forward cache og prófaðu með heitt skyndiminni, ekki bara eftir hreinsun.