• 11
• 9
• 10
• 9
• 10

# How to force swf cache update to newer version without whole cache

This topic is 1900 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Should say: without emptying WHOLE cache.

Hi I have an online elearning system with XMLs, swfs etc...

These are cached locally. When I have a new update the user used to clear their local cache otherwise they wouldn't receive it which is ridiculous.

Now we have a system that replaces EVERYTHING which we call "Break cache" BUT the problem is I don't want to clear the WHOLE cache just one or two file updates.

Is this possible? I have been told it is the html tags we write that operate in the browser that takes care of this but now I'm totally lost. There must be a solution it's only common sense.

Edited by codeBeast

##### Share on other sites

Its not the html tags but the http headers. There should be some possibility to change how they are send out in the server to accomodate your needs, but I dont know specifics.

##### Share on other sites

There are several ways to do this.

A quick ugly fix - just add a querystring to each resource (swf, xml, image, javascript, etc.) that has been updated.

For example, this...

<img src="test.png" />


would become this...

<img src="test.png?v=1" />


and if you change your resource again, it becomes this...

<img src="test.png?v=2" />


A permanent fix - set the cache control headers for the resource. You can just Google Cache-control for whichever language you are using, but the actual response headers will look something like this.

HTTP/1.1 200 OK
Cache-Control: public, must-revalidate, proxy-revalidate, max-age=86400
Expires: Tue, 31 Dec 2019 12:00:00 GMT
Last-Modified: Fri, 08 Feb 2013 00:25:46 GMT
Date: Fri, 08 Feb 2013 00:25:46 GMT
Content-Length: 4346
.
.
.


I don't know what language/webserver you are using - but whenever a request comes in for the resource, you can just compare the date on the Last-modified header with the last modified date for the actual file on disk. If the file has a newer date, then you update the headers and send the new file, otherwise return a 304 status code - which will tell the browser to use its cache.