(我考虑过把它放在SuperUser上,但它确实是一个编程问题)
我在后台使用grunt browsersync任务,只要检测到更改,就会重新编译我的angularjs代码。我的角度是使用ES2015编写的,并使用Babel通过grunt任务进行转换。每次,在完成转换后,我必须在Chrome中执行一个强硬的CTRL-F5才能看到更改生效。在我的Chrome开发者工具中,我有'网络>禁用缓存'选项已选中。为什么我需要刷新两次才有办法只需要刷新一次而不用先手动清除缓存或者不得不使用某种黑客攻击?
答案 0 :(得分:2)
我不确定这会有什么帮助,但我有类似的问题,我通过在我的脚本的src后面添加一些随机字符串来解决
//to tell the browser it's a different script
<script src="myscript.js?id=123123121"></script>
以便浏览器将其识别为不同的脚本;我使用gulp,jspm,webpack和我实现上面代码的方式是使用一个插件,它将在每次编译时用Date.now()重写脚本
答案 1 :(得分:1)
我发现问题是我在单独的浏览器选项卡中使用直接URL加载我的页面,而不是使用其指定的端口号连接grunt browsersync的选项卡(我需要这样做,因为我的一些页面组件取决于端口号,所以我需要控制它)。在grunt transile之后,我需要等到浏览器重新加载连接的url完成后才能在其他选项卡中刷新页面,然后我第一次看到刷新的代码。