YUI框架的ie8 Javascript缓存问题

YUI框架的ie8 Javascript缓存问题,javascript,internet-explorer-8,Javascript,Internet Explorer 8,我有一个正在运行的应用程序正在使用YUI js framwork(v3.0)。用户可以单击我的应用程序中的按钮,将其升级到框架的最新版本(3.4)。问题是在ie8上,我遇到了一些奇怪的javascript错误。调试之后,似乎从浏览器缓存中检索到了loader-min.js文件的旧版本(3.0),因为YUI对象实例化时仍在使用它。因此,在升级过程中,我创建了一个脚本节点,将该位置添加到新的加载程序文件(3.4),然后将其插入head部分。我想我们都熟悉这项技术。但是,当用户导航到下一页时,加载的文

我有一个正在运行的应用程序正在使用YUI js framwork(v3.0)。用户可以单击我的应用程序中的按钮,将其升级到框架的最新版本(3.4)。问题是在ie8上,我遇到了一些奇怪的javascript错误。调试之后,似乎从浏览器缓存中检索到了loader-min.js文件的旧版本(3.0),因为YUI对象实例化时仍在使用它。因此,在升级过程中,我创建了一个脚本节点,将该位置添加到新的加载程序文件(3.4),然后将其插入head部分。我想我们都熟悉这项技术。但是,当用户导航到下一页时,加载的文件将丢失,旧版本(3.0)仍保留在缓存中。通过使用开发人员工具并查看应用程序加载的所有javascript文件来验证这一点

我尝试了很多不同的方法来获得我正在加载的新版本(3.4),以覆盖缓存中当前的版本,这将修复javascript问题。我尝试在加载的文件名末尾添加一个唯一的字符串,这通常是js文件的“版本控制”方式。我已经为我尝试加载的新版本设置了Etag和缓存控制头。什么都不管用,我的头撞在墙上


一个小限制是,我必须使用javascript来尝试加载这个新版本的loader min文件。由于升级过程的工作方式,我无法向html中添加简单的脚本标记。关于为什么IE8不会缓存我正在动态加载的版本,有什么想法、想法和指针吗?

缓存这样的问题通常可以通过为新版本的脚本提供不同的文件名(通常包含版本号)来解决并更改包含它的HTML以引用新文件名,这样缓存系统就不会将它与旧版本混淆

事实上,此版本系统可能应该用于所有外部脚本文件,因此在升级它们时,您可以确保查看器立即获得新版本,并且缓存系统不会意外地混合脚本的旧/新版本