- Home /
Web player cache
Hi!
We're building a web player game that extensively use asset bundles loaded from a web server (from a CDN, to be precise).
How can I make the WWW class to issue an HTTP GET request with "If-Modified-Since" header, then either use the cached item if the response is "HTTP 304 not modified", or download the new version of the file? BTW, it's the way how all web browsers work.
I'm aware of the "version" argument of the LoadFromCacheOrDownload method, however versioning every asset bundle is complex and error-prone, and I'd love to have our content pipeline without it.
Thanks in advance!
How would you know that the browser cache contains the (unchanged) asset bundle? If the server returned a 304 and you could get that information what would you do? This only tells you that the asset bundle has not changed, but it might not be in the cache. ($$anonymous$$aybe I am missing something?)
Answer by DaveA · May 06, 2011 at 04:36 PM
You can set whatever headers you like on the request, and read the responseheaders (undocumented STILL) (code to follow)
var headers : Hashtable = form.headers; headers["If-Modified-Since"] = "Sat, 29 Oct 1994 19:43:31 GMT"; var www = new WWW(url, form.data, headers);
yield www;
if (www.responseheaders["not-sure"] == "not-sure") // I'm not sure this will work for you etc
But see that might not work for you. I recall somewhere that status codes are not available via WWW, you'd either have to go to the HttpRequest (or something like that) class, or just get UniWeb from the asset store. I'd probably just do that, even though it costs, it would save a lot of time and trouble.
Your answer
Follow this Question
Related Questions
Does Unity iPhone Support Caching? 2 Answers
LoadFromCacheOrDownload is sensibly slower than WWW, why? 1 Answer
Does WWW has cache? Any official member can give us a result? 0 Answers
Any caching options available for things dynamically loaded by WebPlayer? 0 Answers
Loading Webplayer builds via WWW.LoadFromCacheOrDownload 3 Answers