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