我有一段PHP程序,是根据表单选项生成XML,然后由FLASH程序去调用. 程序在Firefox, Chrome, Safari下运行全部正常.但在IE下,只有在第一次执行程序时正常,以后都是重复调用第一次生成的XML文件,不做任何更新.只有在手工设置IE浏览器清除缓存数据后,才能又正常,往后又不再更新,除非再次在IE的选项手工清除缓存. 我已经试过在文件头加入header( 'Cache-Control: no-cache, no-store, max-age=0, must-revalidate');header( 'Pragma: no-cache' );header( 'Expires: -1' );以及unlink XML 后再重新生成,都没有效果, 但已经加入测试代码证实所有变量都是正常赋值的. 现在自己已经完全没有办法解决在IE下的这个问题了,恳请看贴的各位高手给指点一下,在下不胜感激.我的这个网页地址是http://www.llspace.com/music.php.(只在IE下不能正常工作).

解决方案 »

  1.   

    IE6、7还有UC是天朝最烂的浏览器,再好的设计到这几款浏览器一显示就变得恶心起来了
      

  2.   

    建议在你要改变的数据部分添加URL时间参数,这样可以有效去除缓存
      

  3.   

    IE 浏览器有一个很糟糕的 BUG,就是当 Flash Object(就是那个 swf 文件)是从 cache 里加载的时候,它的 ExternalInterface callback functions 没有被定义,所以导致 JS 无法与之互操作。常规的解决办法就是不让 swf 进入 cache,最简单的手段就是在指向 swf 的那个 url 后面加上一个时间戳,比如 /swfupload.swf?preventswfcaching=1294580212437
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  4.   

    最后修改swf文件,象#5楼描述的那样,将读入XML文件改成参数形式,(原来是指定的唯一的XML文件),问题解决.看来问题是在swf与IE上,而不是PHP程序. 谢谢maquan. 给分,结贴.