【发布时间】:2010-12-07 11:14:27
【问题描述】:
当用户访问我们的网站时,他们会看到封面流。他们没有登录,所以他们看不到任何图像。一旦他们登录,他们应该能够看到封面流中的图像,但他们不能,因为闪存对象正在被缓存。
用户可以通过将 IE 设置设置为(每次访问网站时检查存储页面的较新版本)来解决此问题,但是我们需要一种方法来强制浏览器在登录后刷新 flash 对象,而不告诉我们所有用户更改浏览器中的设置。
这可能吗?
我已尝试添加以下内容:
<div class="flash">
<script type=text/javascript>
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0',
'width', '600',
'height', '225',
'src', 'streaming_flow2_v8?math=<%= random %>',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'transparent',
'devicefont', 'false',
'id', 'streaming_flow2_v8?math=<%= random %>',
'bgcolor', '#ffffff',
'name', 'streaming_flow2_v8?math=<%= random %>',
'menu', 'true',
'allowScriptAccess','sameDomain',
'allowFullScreen','true',
'movie', 'streaming_flow2_v8?math=<%= random %>',
'salign', ''
);
</script>
<noscript>
<embed
src="streaming_flow2_v8.swf?math=<%= random %>"
width="600"
id="<%= random %>"
height="225"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="address=/playlist.aspx?math=<%= random %>"
/>
</noscript>
</div>
您可以看到我的内联 c# 脚本来生成随机数,但这似乎不会刷新对象。
【问题讨论】:
-
用户登录后页面是否刷新?如果是这样,您可以将参数作为 FlashVar 传递,而不是在 swf 的末尾设置一个随机数,例如 loggedIn=true
-
不确定我是否关注你,但是我尝试在 flash vars 和嵌入对象的属性中设置随机变量,它只是不刷新对象,太烦人了......
-
我总是不得不关闭浏览器并重新打开。它很烂,但每次都有效。
-
对于我们大约 50 位企业客户来说,这并不是一个真正合适的解决方案 :-( 非常希望 :-)
-
我不知道 asp 解决方案,所以我将其作为评论发布。我假设 php 解决方案实际上是相同的。我会编写一个小的 php 脚本,其标题如下所示: header("Cache-Control: no-cache, must-revalidate");在过去的标题中过期的日期(“过期:星期六,1997 年 7 月 26 日 05:00:00 GMT”); - swf 文件“application/x-shockwave-flash”的正确标题,然后我将使用 readfile() 读取 swf。然后我会链接到 php 文件而不是 swf 文件。
标签: c# asp.net html flash internet-explorer