我有一个页面可以提取外部JavaScript文件,然后在该页面中动态生成一些内容(基本上会插入一些DIV和Flash对象)。
当用户离开此页面然后按下“后退”按钮时,Safari和Firefox会显示生成的内容,但IE 8不显示。
IE在历史记录中保留动态内容的最佳做法是什么?或者我是否必须侦听某些特定事件然后重新启动我的JavaScript?
顺便说一句,我有jQuery,所以也欢迎相关的插件建议。编辑:这里是演示的链接: http://mmstest.eenet.ee/embed/281
如果点击底部的Google链接然后返回,Safari和FF会再次显示视频,IE8则不会。
答案 0 :(得分:1)
我使用IE Developer工具栏进行了快速测试 - 我点击了回来,没有发生任何事情。然后我再次尝试但在点击之前我清除了缓存,当我回去时,视频出现了。
尝试确保强制IE清除浏览器缓存,即使单击后页也应加载视频。
----高速缓存后添加的编辑---
这不应该影响客户端浏览器从缓存中获得的Web应用程序的性能,因为只有触发JS嵌入视频的页面才会发送回标头以使缓存过期/禁用。 / em>其他所有内容 - JS脚本,图形/图像和视频事件 - 仍将由客户端缓存。
----编辑:更新,包括评论中的完整解决方案---
要禁用缓存包含的JavaScript文件,一种解决方案是将查询参数中的随机数附加到URL,以便浏览器不会缓存结果。
<script src="jquery.js?t=<?PHP echo rand() ?>">
这样就无需修改网络服务器设置来禁用系统范围内的静态JavaScript文件缓存。
答案 1 :(得分:0)
您应该考虑使用历史插件来获得与动态内容一致的结果。
这是一个包含一些插件jquery history plugin
的主题