我有一个用于测试智能电视网络应用程序的模拟器。模拟器本身是一个Web应用程序,具有显示电视和远程的简单界面,并在iframe中加载正在测试的Web应用程序。用户从命令行启动模拟器,启动两个简单的HTTP服务器(一个用于模拟器,一个用于正在测试的Web应用程序),然后使用指向模拟器的--app命令行开关启动chrome。 / p>
问题在于Chrome每次启动时都会加载网络应用的缓存版本。如果您自上次发布以来对自己的网络应用进行了更改,那么在您对页面进行硬刷新之前,它们不会显示。
为了解决这个问题,我尝试了以下方法:
--app=http://localhost:6001/?random={some_hash}
)这些似乎都没有。模拟器代码似乎没有被缓存,因为iframe中的src URL确实每次都会附加一个新的随机值。但是,iframe中加载的页面是旧的,并且在首次启动后始终需要刷新。
我可以尝试的其他任何我尚未涵盖的内容?
问题的进一步示例:
在这种情况下,模拟器将启动并仍显示Web应用程序1.它将继续显示Web应用程序1,直到用户执行硬刷新(cmd + shift + r),此时Web应用程序2最终显示
答案 0 :(得分:7)
听起来这可能与此处的错误有关: https://code.google.com/p/chromium/issues/detail?id=324102
作为一种解决方法,我发现从javascript设置iframe src ALONG将随机查询参数附加到URL似乎可以解决问题。只做一个或另一个不起作用。
示例:
// still loads stale page
document.getElementById('tv-screen').src = 'http://localhost:6001/';
// will load fresh page
document.getElementById('tv-screen').src = 'http://localhost:6001/?rand=' + Math.round(Math.random() * 10000000);