2009-08-21 28 views
0

我创建了一个Flex应用程序,swf文件的大小为〜900KB。在Flex应用程序中缓存swf文件

我的问题是文件没有被缓存。当我第二次启动该应用程序时,将再次从服务器获取swf文件。

我在一个jsp中包含了swf文件,而且我没有修改任何HTTP缓存头。我认为swf文件将被自动缓存。不是吗?

如何强制缓存文件?我是否需要在MXML代码中提供任何内容或只需提供response.setHeader(“Cache-Control”,“max-age = 100”);足够?任何事情都可以从flex侧进行?

建议请...

+0

你如何确定SWF没有被缓存? – Gabriel 2009-08-23 01:45:48

+0

我正在使用提琴手。对于每个请求,SWF都会再次加载。我假设如果swf被缓存,它不会发出swf文件的单独请求。 – jobinbasani 2009-08-24 14:52:27

回答

0

我认为你的意思是说你的JSP页面生成的HTML包含对SWF的引用 - 这将是常见的情况。在这种情况下,浏览器(至少)有两个HTTP请求 - 一个用于JSP页面,一个用于SWF文件。由于SWF文件是静态文件,因此可能会由J2EE服务器或您的网络服务器(例如Apache)提供,具体取决于您的配置。您需要检查哪些缓存设置适用于您的静态内容(例如图像),并确保这些设置可防止缓存SWF。您的JSP缓存设置只会影响HTML,而不会影响SWF。

理想情况下,使用Firefox和Firebug浏览您的网站并检查每个HTTP请求的标题(Firebug的Net标签)。这应该为您提供有关哪些标头适用于SWF的信息。

0

我会假设,对于SWF请求是从你的JSP页面的请求单独的(就像对图像的要求是不同的)。因此,您可能需要将服务器配置为使用特定缓存标头来提供SWF文件。我怀疑改变JSP页面的缓存设置会有所作为。