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:

Þ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:

  1. Staðsetning á biðlarahlið. Láttu CMP ákvarða svæðið í vafranum, svo HTML í skyndiminni haldist eins fyrir alla.
  2. 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.
  3. 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

Lykilatriði

← Blogg Lesa allt →