Jump to content

  • Log In with Google      Sign In   
  • Create Account


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


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 codeBeast   Members   -  Reputation: 105

Like
0Likes
Like

Posted 06 February 2013 - 12:18 PM

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.

Thaks in advance.


Edited by codeBeast, 06 February 2013 - 12:19 PM.


Sponsor:

#2 wintertime   Members   -  Reputation: 1641

Like
0Likes
Like

Posted 06 February 2013 - 06:13 PM

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.



#3 EmployeeNumber8   Crossbones+   -  Reputation: 1103

Like
0Likes
Like

Posted 07 February 2013 - 07:11 PM

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. 

 






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS