其中一名与会者问我的问题,问题的 Flex HTTPService 和 IE 浏览器缓存。 我答应提供详细的解决这个问题,所以在这里:
问题 :重复 HTTPService 要求时,从软硬度(运行在一个实例的 IE 浏览器)许多倍最终没有外部的 HTTP 调用。 看来这些数据是从缓存。
原因是 : Flash 播放器搭载在浏览器上进行的 HTTP 调用。 IE 浏览器缓存的响应的 HTTP GET 要求和发生的相同的 URL 传回的响应缓存。
解决方案 :这个问题可以得到解决或者在服务器端或客户端。
服务器端的解决办法 :设置 HTTP 头的响应,以避免返回响应缓存。
在 html : (在标题)
- <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
- <META HTTP-EQUIV="expires" CONTENT="0">
在 PHP : (在脚本)
</p>
标题( "缓存控制:无缓存,必须重新" ) ;
标题( "截止日期:星期一, 1997 年 7 月 26 日 5 时 00 分 00 秒格林尼治标准时间" ) ;
在 JSP 中: (前书面向输出流)
response.setHeader ( "缓存控制" , "无缓存" ) ;
response.setDateHeader ( "到期" , 0 ) ;
客户端的解决办法 : ( 1 )的 HTTP 邮政电话 - 只的 HTTP GET 要求是从缓存或( 2 )确定的 HTTP GET 网址是不同的每一次。
( 1 )的 HTTP 后呼吁 -
设置方法 = "post" 和呼吁妥善处理
( 2 )附加了一个独特的参数的 HTTP GET 要求,这样的网址是不同的每一次。 一种独特的时间戳记是一个很好的选择。
下面的代码示例,可以做的工作:
无功 timeStampForNocache :日期 = 新的日期( ) ;
params.noCacheControlVar = timeStampForNocache.getTime ( ) 。 toString ( ) ;
我已命名的参数 "noCacheControlVar" 。 您可以将它命名为任何您请。 这个名字并不重要。 要紧的是,时间戳使独特的 HTTP GET 的 URL 。
来源: http://www.bubuko.com/infodetail-2146265.html