diff --git a/wled00/set.cpp b/wled00/set.cpp index 35f94401d..30e9d77f0 100644 --- a/wled00/set.cpp +++ b/wled00/set.cpp @@ -193,6 +193,10 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) strlcpy(serverDescription, request->arg(F("DS")).c_str(), 33); syncToggleReceive = request->hasArg(F("ST")); #ifndef WLED_DISABLE_SIMPLE_UI + if (simplifiedUI ^ request->hasArg(F("SU"))) { + // UI selection changed, invalidate browser cache + cacheInvalidate++; + } simplifiedUI = request->hasArg(F("SU")); #endif } diff --git a/wled00/wled.h b/wled00/wled.h index 143aff318..8f2b05ad3 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -8,7 +8,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2108091 +#define VERSION 2108101 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG @@ -282,6 +282,7 @@ WLED_GLOBAL byte briMultiplier _INIT(100); // % of brightness to set (t WLED_GLOBAL char serverDescription[33] _INIT("WLED"); // Name of module WLED_GLOBAL bool syncToggleReceive _INIT(false); // UIs which only have a single button for sync should toggle send+receive if this is true, only send otherwise WLED_GLOBAL bool simplifiedUI _INIT(false); // enable simplified UI +WLED_GLOBAL byte cacheInvalidate _INIT(0); // used to invalidate browser cache when switching from regular to simplified UI // Sync CONFIG WLED_GLOBAL NodesMap Nodes; diff --git a/wled00/wled_server.cpp b/wled00/wled_server.cpp index 4b30a2b68..ffd40f54a 100644 --- a/wled00/wled_server.cpp +++ b/wled00/wled_server.cpp @@ -285,12 +285,14 @@ bool handleIfNoneMatchCacheHeader(AsyncWebServerRequest* request) void setStaticContentCacheHeaders(AsyncWebServerResponse *response) { + char tmp[12]; #ifndef WLED_DEBUG response->addHeader(F("Cache-Control"),"max-age=604800"); // 7 day caching #else response->addHeader(F("Cache-Control"),"no-store,max-age=0"); // prevent caching if debug build #endif - response->addHeader(F("ETag"), String(VERSION)); + sprintf_P(tmp, PSTR("%8d-%02x"), VERSION, cacheInvalidate); + response->addHeader(F("ETag"), tmp); } void serveIndex(AsyncWebServerRequest* request)