certifiedit.net
Goto Top

Serverseitig Cache und Cookies löschen

Schönen Samstag,

gibt es einen Trick, wie man von Seiten des Webservers aus Cookies und Cache der besuchenden Clients (für die betreffende Seite) im Browser des Besuchers löschen kann?

Geht um UX Probleme, die aufgrund einer vorherigen Installation noch auf div. Clients verstreut sind - eine Anweisung "bitte löschen Sie Ihren Cache" dürfte mehr Fragen aufwerfen, als dass sie beantwortet.

Ich vermute zwar, dass das nicht geht und mir ist im Grunde auch klar, dass das theoretisch als ein Eingriff in die IT-Systeme dritter bedeutet (eigentlich sollte das ja auch vollautomatisch passieren), allerdings sehe ich hier grundsätzlich kein Problem, da es dem Benutzer schlussendlich um die Benutzbarkeit geht.

Danke im Voraus,

Christian

Content-ID: 375819

Url: https://administrator.de/contentid/375819

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

136166
136166 02.06.2018 aktualisiert um 16:40:44 Uhr
Goto Top
https://www.w3schools.com/js/js_cookies.asp
https://stackoverflow.com/questions/179355/clearing-all-cookies-with-jav ...
https://stackoverflow.com/questions/1341089/using-meta-tags-to-turn-off- ...

Zum One-Time Cookie löschen für die Seite folgenden JavaScript-Code einsetzen:
function deleteAllApplicationCookies() {
  var cookies = GetAllCookies();
  if (!cookies.hasOwnProperty("deleted")) {  
    for (var key in cookies){
      document.cookie = key + '=;expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';  
    }
    setCookie('deleted', '1', 365);  
  }
}

function GetAllCookies(){
  var out = {};
  var cookies = document.cookie.split(';');  
  for (var i = 0; i < cookies.length; i++) {
      var cookie = cookies[i].trim();
      var eqPos = cookie.indexOf('=');  
      var name = eqPos > - 1 ? cookie.substr(0, eqPos) : cookie;
      out[name] = cookie.substr(eqPos+1);
    }
  return out;
}

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  var expires = 'expires=' + d.toUTCString();  
  document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';  
}

deleteAllApplicationCookies();
Das löscht beim ersten Zugriff alle Cookies und erstellt ein Cookie "deleted" als Flag das sie gelöscht wurden. Beim erneuten Aufrufen erkennt das Skript das es die Cookies bereits gelöscht hat und fasst sie nicht mehr an.
Zum Expiring des HTML Content siehe den letzten Link zu den META Tags .
atze187
atze187 06.06.2018 um 07:46:41 Uhr
Goto Top
Cache löschen geht so erstmal nicht, du kannst allerdings mittels HTTP-Headern festlegen wie lang per die abgerufenen Inhalte gültig sein sollen:

Cache-Control

Zusätzlich kannst du per Url-Parameter den Browser dazu bringen die Dateien neu vom Server abzurufen:

Cache busting

Cookies lassen sich mit PHP/ASP.NET/... auch löschen. Wie du das machen kannst ist abhängig von der verwendet Sprache:

PHP

ASP.NET
atze187
atze187 06.06.2018 um 07:47:35 Uhr
Goto Top
Es ging um serverseitiges Löschen.