Flex从服务器请求文件如何避免缓存

方法1:

例如,在程序初始化的时候需要从服务器获取该用户的个性化配置文件setting.xml。通常我们会使用URLLoader,直接把该文件的url地址赋给URLRequest然后载入。在运行的过程中,用户修改了一些个性化设置,于是程序把最新的设置提交给服务器,让后台重新生成一个setting.xml替换原来的文件。

 

但是如果浏览器打开了缓存功能,那么下一次运行程序的时候,当再次请求这个文件,浏览器就会先从本地缓存中找到该文件,而不是从服务器下载最新文件。所以你可能会以为自己上次修改的设置并没有保存下来。

 

解决的方法是在文件地址后面随便加个参数,例如

"setting.xml?rtp=" + String(Math.random() * 65535)

实际上rtp只是个无意义的随机参数,但这样做可以避免浏览器从缓存里取文件而不是从服务器上重新获取。

同时页面设置:
HTML网页

<META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

ASP网页

<% Response.Expires = -1 Response.ExpiresAbsolute = Now() - 1 Response.cachecontrol = "no-cache" %>

PHP网页

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache");

JSP

response.setHeader("Pragma","No-Cache"); response.setHeader("Cache-Control","No-Cache"); response.setDateHeader("Expires", 0);

C# 

        Response.Buffer = true;
        Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
        Response.Expires = 0;
        Response.CacheControl = "no-cache";

posted @ 2009-08-26 09:27  94cool  阅读(325)  评论(0)    收藏  举报