Vielen Dank für die Antworten.
Nein, ich weigere mich, an die
URL irgendeinen Buchstabensalat dran zu hängen und darauf zu hoffen, dass der Browser das tut, was ich mir wünsche.
Ich habe in der Antwort vom Server den Cache nun auf
no-store, must-revalidate
gesetzt, und es tut was es soll.
Mein gesamtes JavaScript sieht so aus:
Code:
document.addEventListener(
"DOMContentLoaded",
function(event) {
init();
}
);
function init() {
setInterval(
function() {
var imgSrc = String(document.getElementById("img").src);
document.getElementById("img").src = imgSrc;
},
1000
)
}
Der gesamte Teil vom Delphi-Server sieht so aus:
Delphi-Quellcode:
procedure TImageReplyGenerator.generateReply(
const request: TIdHTTPRequestInfo;
const response: TIdHTTPResponseInfo
);
begin
response.ContentStream := getPngStream();
try
response.ContentType := 'image/png';
response.FreeContentStream := False;
response.CacheControl := 'no-store, must-revalidate'; // siehe https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
response.Expires := Now();
response.LastModified := Now();
except
response.ContentStream.Free();
response.ContentStream := nil;
raise;
end;
end;
Der Internet Explorer tut mal wieder nicht was er soll, aber das ist dann auch egal