Kann ich den Seitenhintergrund für Cache Hit vs. Miss ändern?

Ich habe einen Seitencache ausgeführt (Varnish) und die VCL setzt den X-Cache-Header auf HIT oder MISS, wenn sie die Seite liefert. Während ich debugge, bin ich es leid, die Seitenköpfe in meinem Browser zu finden, um zu sehen, ob die Seite ein Treffer oder ein Fehlschlag war; Ich möchte den Seitenhintergrund (oder Rand) ändern lassen.

Varnish lässt mich nicht den Körper verändern, nur die Header und Cookies.

Ich könnte die VCL ändern, um einen Cookie zu setzen, und dann ein wenig Javascript in ein Plugin implementieren, um den Cookie zu überprüfen und den Hintergrund zu ändern … aber ich denke, dass es eine elegantere Methode dafür geben muss.

Hat jemand schon einmal so etwas gemacht und wie hat es geklappt?

Solutions Collecting From Web of "Kann ich den Seitenhintergrund für Cache Hit vs. Miss ändern?"

Ich denke, etwas eleganter wäre es, die Stile über den Link-Header zu senden. Dies beinhaltet nicht das Senden des Cookies oder die Verwendung von Javascript.

Aber das würde nur mit Firefox funktionieren:

sub vcl_deliver { if (obj.hits > 0) { set resp.http.X-Cache = "cached"; } else { set resp.http.X-Cache = "uncached"; set resp.http.Link = ";rel=stylesheet;type=text/css;media=all"; } } 

Sie werden “Race Conditions” mit dem Cookie-Ansatz erleben, da dieser Status von allen Tabs geteilt wird, die die Site durchsuchen. Der beste Ansatz wäre:

  1. Speichern Sie ein hit / miss Flag in req.http.whatever .
  2. /color-hack.html auf allen Ihren Seiten ein ESI-Fragment ein (zB /color-hack.html ).
  3. Fügen Sie VCL-Logik hinzu, um Anfragen von /color-hack.html während vcl_recv , zu vcl_synth zu vcl_synth und abhängig vom Wert des Flags in req_top.http.whatever HTML oder JavaScript zu req_top.http.whatever . Dann können Sie dies auf der Client-Seite verwenden, um die Farbe des Tempos zu ändern, was auch immer Sie tun möchten.

Ich weiß, dass es ein wenig verworren aussieht, aber es sollte einfach zu implementieren sein, wenn Sie mit ESI und synthetischen Antworten vertraut sind.